timer – a Pomodoro/Interval Timer
timer is a command line interval timer written in Bash.
- Calming, serene alert tone inspired by Buddhist meditation bells
- Set a simple countdown, or specify a set of intervals to time
- Repeat interval sets n times, or indefinitely
In a regular terminal session, remaining time is displayed in the window title.
In a tmux session, remaining time is displayed in the status bar beside the session name.
$ brew install rlue/utils/timer
timer to a directory on your $PATH (e.g.,
/usr/local/bin) and make it executable:
$ curl -o ~/bin/timer https://raw.githubusercontent.com/rlue/timer/master/bin/timer $ chmod +x ~/bin/timer
$ timer [options] [minutes ...] -r rounds Repeat timer (n < 0 repeats forever) -d seconds Delay timer start -q Suppress command line output -h Display this message -v Display version information
Timer duration may be specified in fraction or decimal form; e.g., 90 seconds may be specified as
If multiple durations are specified, an alert will be triggered at the end of each interval.
Simple timer (30m)
$ timer 30
Let’s say you meditate for 30 minutes. You can set the interval bell to ring after 5 minutes, so you can spend the first 5 minutes settling/relaxing yourself and your mind, and then begin the actual meditation practice when the interval bell rings.
$ timer 5 25
- Decide on the task to be done.
- Set the pomodoro timer (traditionally to 25 minutes).
- Work on the task until the timer rings.
- After the timer rings, put a checkmark on a piece of paper.
- If you have fewer than four checkmarks, take a short break (3–5 minutes), then go to step 2.
- After four pomodoros, take a longer break (15–30 minutes), reset your checkmark count to zero, then go to step 1.
$ timer 25 5 25 5 25 5 25 20
Or to repeat this 135-minute set twice in a row,
$ timer -r2 25 5 25 5 25 5 25 20
timer uses sox under the hood to chime the
bell. If you receive an error message that begins
play WARN, it may mean
that sox has selected the wrong audio driver or sound card (“audio device”) to
When this happens, specifying the appropriate audio driver or device via an environment variable should fix the problem:
$ AUDIODRIVER=alsa timer 5
If this works, you can make this setting permanent either by defining a shell alias
# ~/.bashrc alias timer="AUDIODRIVER=alsa timer"
or exporting the environment variable globally.
# ~/.profile export AUDIODRIVER=alsa
© 2017 Ryan Lue. This project is licensed under the terms of the MIT license.