sand is a linux daemon for countdown timers, and a command-line client for
interacting with it.
$ sand start 5m
Timer #1 created for 00:05:00:000.
$ sand start 1h 30s
Timer #2 created for 01:00:30:000.
$ sand ls
#1 | 00:04:23:929
#2 | 01:00:20:407
$ sand cancel 1
Cancelled timer #1.
$ sand cancel 2
Cancelled timer #2.
$ sand ls
No timers running.A sound will play and a desktop notification will be triggered when a timer elapses.
- I'm generally on my laptop more than my phone.
- I find it much faster and more convenient to hit super+enter to open a terminal and type a short command than to unlock my phone, navigate to the clock app, and enter the duration on the touchscreen.
Basically, a bunch of minor useability improvements.
sand start 10mis less typing- If you're anything like me, you dislike having a bunch of open windows cluttering your workspace, making it difficult to find things. Since sand runs as a daemon, you can start a timer from a terminal, immediately close the terminal, and the timer will still be running in the background. Alternatively, you can use your favorite graphical laucher or command runner.
- You get a convenient syntax for minutes and hours, so that you don't have to multiply by 60 or 3600 in your head to figure out how many seconds you need.
- You get the ability to see how much time is remaining. Important feature IMO!
If you're an ultra-minimalist who prefers cobbling solutions together using tools that come stock with your distro, this might not be for you. If you like convenience and good UX, this is for you.
You can install using the PKGBUILD for sand-timer-git in the root directory.
Note that sand is untested on distros other than arch, but I believe you should be able to use it on most distros. Please let me know if you do so I can update this readme!
- Make sure you have the dependencies:
- systemd
- libnotify
- optionally, for audio:
- on Arch: alsa-lib
- on Debian/Ubuntu: libasound2-dev
- on Fedora: alsa-lib-devel
cargo build --releaseinstall -m755 target/release/sand /usr/bin/sand- Copy the systemd units from
resources/systemd/into/usr/lib/systemd/user/ - Copy
resources/timer_sound.flacunits into/usr/share/sand-timer/
After installing, you'll need to enable and start the service.
$ systemctl --user daemon-reload
$ systemctl --user enable --now sand.socketTo 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 start 0to check everything's working correctly.