Pomodoro timer is a timer interface executing timew continue
and timew stop
commands to mimic pomodoro sessions with
timewarrior as the backend.
This is intended to be used with taskwarrior and the hook script that integrates it with timewarrior. You can learn more information in their docs.
- ncurses
- vorbis (For desktop)
- OpenAL (For desktop)
- OpenSLES (For embedded devices)
git clone https://github.com/OmarMohamedKhallaf/Timewarrior-Pomodoro.git pomo
cd pomo
# Use -DCMAKE_INSTALL_PREFIX=$PREFIX for termux on android
cmake -B build -S ./ -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel 4 --target install
- Add sounds after at the end of work and break sessions
- Parse output from child process
- Adapt to changes in terminal size
- Support unicode
- Automatic session tracking by handling signals from taskwarrior hook scripts (Doesn't work in termux )
- Handle text wrapping properly
- Indicate whether it's a focus time or break time in the interface
- Handle errors properly
- Confirm exit before exiting
- Make variables configurable
- Support for
timew start <tags...>
in the interface - Use ascii art to print digits adapted to the size of the terminal
There are only three commands for now
c: to continue a session followed by a break (must be started by taskwarrior & the hook script)
p: to pause the current session (actually stops it in timewarrior terms)
e: to exit
There is a hook scrip that automatically starts tracking by sending a USR1 signal to the program. This scrip must be executed after timewarrior hook script, to enforce this ordering they must be named in a lexicological order.
For example:
$ ls -1 ~/.task/hooks/
on-modify.00-timewarrior
on-modify.99-tw-pomodoro
So a normal workflow is like this:
- you have your tasks stored in taskwarrior
- you have tw-pomodoro opened in another window, pane, ...
- you
task 1 start
and tw-pomodoro automatically starts the timer and notifies you at the end of sessions - after a break you press
c
and start your next session
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.