No description
Find a file
dependabot[bot] fd2bbbec40 build(deps): Bump golang.org/x/text in the go group
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>
2026-03-16 10:22:31 +00:00
.github Fix labels job name 2025-07-29 10:26:37 +01:00
cmd/mdprint docs: Mostly documentation updates 2025-07-30 21:50:53 +01:00
config Init 2025-07-26 22:40:47 +01:00
docs/example docs: Mostly documentation updates 2025-07-30 21:50:53 +01:00
mdbuilder feat: Don't print section if plugin returns "" 2025-07-29 16:23:14 +01:00
mdprint fix: Handle interesting characters 2025-07-29 12:55:28 +01:00
plugin feat: Don't print section if plugin returns "" 2025-07-29 16:23:14 +01:00
.gitignore Init 2025-07-26 22:40:47 +01:00
.goreleaser.yaml Init 2025-07-26 22:40:47 +01:00
go.mod build(deps): Bump golang.org/x/text in the go group 2026-03-16 10:22:31 +00:00
go.sum build(deps): Bump golang.org/x/text in the go group 2026-03-16 10:22:31 +00:00
LICENSE Init 2025-07-26 22:40:47 +01:00
main.go Init 2025-07-26 22:40:47 +01:00
README.md docs: Mostly documentation updates 2025-07-30 21:50:53 +01:00

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:

  1. ./thermi.yaml
  2. /usr/local/etc/thermi.yaml
  3. /etc/thermi.yaml
  4. ~/.config/thermi/thermi.yaml
  5. ~/.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.