remindme

=> imgs/remindme.png

I was looking for a system to easily add reminders for various things from my

terminal. After looking around, I couldn't find anything that was suiting my

needs:

The best candidate I found was remind:

=> https://dianne.skoll.ca/wiki/Remind

It ticked almost all the boxes, was capable of handling insanely complex

scheduling, has been around for almost 30 years and is backed by simple text

files. The only missing thing was a tool to make it easy to to add reminders

using natural language.

This is where remindme enters the game:

=> https://git.sr.ht/~primalmotion/remindme

Now I could populate the REM files from invocations like:

remindme to get a coffee break in 5m
remindme to buy some milk next week
remindme to get leave for airport next tuesday at 9:00am

Running remind as a daemon is as simple as using the following systemd unit (or

whatever you use):

$ cat ~/.config/systemd/user/remind.service
[Unit]
Description=Reminders

[Service]
ExecStart=%h/.bin/remind.sh

[Install]
WantedBy=default.target

The content of remind.sh is straighforward:

$ cat ~/.bin/remind.sh
#!/bin/sh
FIFO="$HOME/.cache/fifo.remind"
rm "$FIFO"; mkfifo "$FIFO"
tail -f "$FIFO" | remind -z0 "-k$HOME/.bin/remind-notif.sh %s" "$HOME/.reminders"

(The -z0 option puts remind into listen mode so you can send commands through stdin.

remindme will send the REREAD command when it adds a reminder)

Here's the content of remind-notif.sh:

$ cat ~/.bin/remind-notif.sh
#!/bin/sh
notify-send -u critical -i "$HOME/.local/share/icons/remind.png" Reminders "$(date +%H:%M)\n$1"

(The -i option sets a path to the icon for the notification. You need to find

one, or just remove the -i option alltogether)

All can be done in the unit file, but the amount of needed bash escaping sauce

makes it disgusting.

Now you need to instruct remindme where to write the reminder and which named

pipe to poke to reload the remind state:

$ cat ~/.config/remindme/config.yaml
file: ~/.reminders/remindme.rem
pipe: ~/.cache/fifo.remind

Finally enable and start the service:

systemctl --user daemon-reload
systemctl enable --now remind

I'm using this system for a while now, and it works pretty well. I also

installed it on my Librem 5 so reminders are sync'ed between my laptop and my

phone. Take that, Cloud.

Proxy Information
Original URL
gemini://axionfield.space/gemlog/20220512-remindme.gmi
Status Code
Success (20)
Meta
text/gemini; charset=utf-8
Capsule Response Time
646.342293 milliseconds
Gemini-to-HTML Time
0.554137 milliseconds

This content has been proxied by September (3851b).