- Go 100%
Bumps the go group with 1 update: [golang.org/x/text](https://github.com/golang/text). Updates `golang.org/x/text` from 0.34.0 to 0.35.0 - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.34.0...v0.35.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-version: 0.35.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .github | ||
| cmd/mdprint | ||
| config | ||
| docs/example | ||
| mdbuilder | ||
| mdprint | ||
| plugin | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
Thermi
Thermi pulls data from a variety of sources and prints them on thermal paper.
Supported Sources
The following sources are supported:
- Birthdays (from Fastmail contacts)
- Events (from Apple iCloud calendar)
- Jokes (from I Can Haz Dad Jokes)
- Todo lists (from Nextcloud Tasks)
Additional Features
In addition to the supported sources, Thermi can also print:
- Text (provided by the user)
- Time of day (system time)
Installation
Head to the GitHub release page and download the latest release for your platform. Extract the binary and place it in a directory that is in your PATH.
Configuration
Thermi will, by default, look in the following locations for configuration files:
./thermi.yaml/usr/local/etc/thermi.yaml/etc/thermi.yaml~/.config/thermi/thermi.yaml~/.thermi.yaml
See below for specifying a custom configuration file.
The configuration file is a YAML file with a top-level object called order, under there is a list of plugins to load with their configuration.
Plugins are executed in the order they are listed in the configuration file and can be specified multiple times with different configurations.
Birthday Plugin
Currently the birthday plugin only supports Fastmail contacts. You need to provide your Fastmail username and password, as well as the number of days before the birthday you want to be notified.
order:
- plugin: birthday
username: your_fastmail_username
password: your_fastmail_password
days_before: 7
Event Plugin
The event plugin supports Apple iCloud calendar. You need to provide your iCloud username and password, as well as the number of days before the event you want to be notified.
order:
- plugin: events
calendar: your_icloud_calendar_name
username: your_icloud_username
password: your_icloud_password
days: 7
Joke Plugin
The joke plugin fetches jokes from the "I Can Haz Dad Jokes" API. This has no configuration options.
order:
- plugin: joke
Text Plugin
The text plugin allows you to print custom text. You can specify the text directly in the configuration file.
order:
- plugin: text
text: "Hello, this is a custom message!"
- plugin: text
text: |
This is a multiline
custom message with _markdown support_!
Time Plugin
The time plugin prints the current system time. This has no configuration options.
order:
- plugin: timeofday
Todo Plugin
The todo plugin fetches tasks from Nextcloud Tasks. You need to provide your Nextcloud username, password, and the number of tasks you want to be printed.
order:
- plugin: todo
username: your_nextcloud_username
password: your_nextcloud_password
url: https://your-nextcloud-instance.com/remote.php/dav
Running Thermi
To run Thermi, simply execute the binary from the command line:
thermi
A number of command line options are available to customize the behavior of Thermi:
thermi -h
Usage of thermi:
-d Print debug information - may contain sensitive information
-f string
Config file to use
-n Do not print, just build markdown
-v Print version and exit
Very likely you will want to configure you system to run Thermi automatically at a certain time of day. This can be done using a cron job or a systemd timer.