Yet another TUI pomodoro timer app. But why? Same reason all the others give: it doesn’t meet my needs.
We all know what this is and how it works, so here are the extra features I added that most others don’t have:
- A config file. I want to be able to just run
tomaquetand have it set to my preferred intervals without having to imput them on the command line.
- Unlimited cycles. Most I tried stop after three or five cycles. For one of the uses I’ll give it, I need it to be able to run forever.
- Customisation. I want it to match my rice! I can’t have it sticking out with another color!
- Responsiveness. Most aren’t responsive or have a minimum size. I want to be able to put this thing anywhere, like on the top of my desktop:
- Notifications. Not always though, sometimes it will be on another virtual desktop, so I need it to notify me when a cycle ends.
- Alarm sound. What if I’m not playing attention to the computer screen?
I didn’t entirely create it just because I didn’t quite like the others though. I also wanted some more practice with the
tui library and to try programming something time-based.
I have never needed to keep track of time on a desktop application, so I didn’t really know what I was getting into. What I found is that it’s relatively similar to working with an RTC on an embedded platform.
The most challenging part was definitely figuring out how to pause the timer without sleeping the thread - But I ended up making it with some simple math.
For the alarm sound I used the
rodio crate, and it was a lot more srtaight forward than what I expected. I even composed an alarm sound myself! It’s on the resources folder on the repository.
Overall, it was a simple little project I used to spend my free time on and take a bit of a mental break from university.