You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fmn(forget-me-not) is a command-line task reminder sending desktop
notifications for linux/macOS(M1, intel)
relying on notify-rust it's
cross-platform out of box
consisting of two executables, a client and a daemon
tasks are stored as a file for persistence
configure it via env var REMINDER_TASK_STORE
usage
client
# help
fmn -h
# examples# remind after 5 mins
fmn add "just a reminder" after 5m
# remind per hour
fmn add "hello world" per 1h
# remind me at 19:30 today (assuming it's in the future)
fmn add "foo bar" at 19:30
# remind me at 19:30 everyday
fmn add "foo bar" at 19:30 --per-day
# date format: iso8601
fmn add "test" on 2023-11-12T09:20
# remind with a sound
fmn add -s ~/Downloads/song.mp3 "chill" at 8:00 --per-day
# remind with an image (only available on xorg-based desktop environment)
fmn add -i ~/Downloads/picture.png "chill" after 10h
# list all reminder tasks
fmn list
# remove a task
fmn rm <task_id># context for work/home
fmn context define work
fmn context set work
fmn add "a work-only task" at 10:00
daemon setup
for linux, you would need to deploy it via systemd or initd
for an example of user-level systemd, check misc/fmn.service
you would need to provide a value for ExecStart to specify the path to
fmn-daemon
for macOS, you would need to do the following
for iterm2, change the alert settings via "Edit -> Marks and Annotations ->
Alerts -> Alert on Next Mark"
use launchd to deploy daemon so that it starts running on startup; see
this
an example could be found in misc/com.example.fmn.plist
fmn-daemon uses unix socket for IPC by default
configure the port to use via env var FMN_DAEMON_UNIX_ADDR
(/tmp/fmn.sock by default)
if you don't want to setup a keep-alive daemon, you could just
nohup fmn-deamon &> path/to/log &
notification media
An image(only linux) and a sound(linux/mac) could be attached to every
notification by providing the env vars when running fmn
FMN_IMAGE_PATH
FMN_SOUND_PATH
note: when you configure these variables in files like ~/.bash_profile
or ~/.config/fish/config.fish, please use the full path!
fmn add -i and fmn add -s would have higher priority; these two env vars
could be the defaults
on macOS, the built-in /usr/bin/afplay would be used to play the sound