uair
is a minimal pomodoro timer for UNIX-like operating systems. Unlike other timers, uair
simply prints the remaining time to standard output. Other than making the code more maintainable, this design allows uair
to be very extensible as it can be used in various status bars and even command-line and graphical user interfaces.
uairctl
command-line utility for pausing/resuming the timer. It can be binded to a keyboard shortcut.Rust and cargo are currently required to be installed for installation. To install, simply run
cargo install uair
Make sure to include $HOME/.cargo/bin
in the PATH
variable.
Configuration is done in TOML. Default config path is $HOME/.config/uair/uair.toml
.
Example Config:
```toml [[sessions]] name = "Work" duration = "30m" command = "notify-send 'Work Done!'" before = "" after = "\n"
[[sessions]] name = "Rest" duration = "5m" command = "notify-send 'Rest Done!'" before = "" after = "\n"
[[sessions]] name = "Work, but harder" duration = "1h 30m" command = "notify-send 'Hard Work Done!'" before = "" after = "\n" ```
A list of sessions has to be provided in the top-level sessions
key. Each session is a struct with the following keys:
name
: name of the sessionduration
: duration of the sessioncommand
: command which is run when the session finishesbefore
: string which is printed before the remaining time stringafter
: string which is printed after the remaining time stringWhen uair
is started, or a session is completed, the timer is in a paused state. In order to start the session, uairctl
command must be used. Start the session by resuming the timer.
uairctl -r
While the timer is running, pause using
uairctl -p
To toggle between pause and resume states, use both flags
uairctl -p -r
Include pomodoro module in the config.
ini
[module/uair]
type = custom/script
exec = /home/rishabh/bin/uair
label = %output%
tail = true
Remember to include the module in the modules list.
modules-right = filesystem uair pulseaudio xkeyboard memory cpu wlan eth date
In order for it to be displayed, a newline should be printed after printing the remaining time.
toml
[[sessions]]
name = "Work"
duration = "30m"
command = "notify-send 'Work Done!'"
before = ""
after = "\n"
toml
[[sessions]]
name = "Work"
duration = "1h 30m"
command = "notify-send 'Work Done!'"
before = "\r"
after = " "
Run with:
clear && uair
toml
[[sessions]]
name = "Work"
duration = "1h 30m"
command = "notify-send 'Work Done!'"
before = "#"
after = "\n"
Run with:
uair | yad --progress