Command line countdown timers that don't take up a terminal.
sand
runs as a daemon in the background, allowing you to set timers
without having to worry about keeping the terminal open. You can also start
timers from your app launcher/command runner of choice.
$ sand 5m
Timer created for 00:05:00:000.
$ sand 1h 30s
Timer created for 01:00:30:000.
$ sand ls
#2 | 01:00:27:313 remaining
#1 | 00:04:51:340 remaining
A sound will play and a desktop notification will be triggered when a timer elapses.
I use it for remembering to get things out of the oven.
-
Make sure you have the dependencies:
- systemd
- libnotify
- optionally, pulseaudio or wireplumber (for timer notification sounds)
-
Download and extract the latest tarball from the releases page
-
The install script,
install_release.sh
is currently only tested on Arch. It should work on any distro that follows the FHS. However, I would recommend reading it and confirming that it will work correctly on your distro. -
inside the release directory, run
sudo ./install_release.sh
After installing, you'll need to enable and start the service.
$ systemctl --user daemon-reload
$ systemctl --user enable --now sand.socket
To see notifications, you'll need a libnotify compatible notification server. Desktop managers like Gnome and Plasma generally come with this built in, but if you use a stand alone window manager you'll need to choose and install one yourself. You can find a list of potential options here.
You can type
$ sand 0
to check everything's working correctly.
You'll need a lean toolchain, which can be installed using elan.
Once that's done, run
$ lake build
The executable will be in ./.lake/build/bin/sand
.