PDSHELL - Pomodoro tool in bash

Written by Bruno Fontes, 14 Jun 2022


I've always tried to find better techniques that allow me to work better, that I can get more done in less time and the Pomodoro technique always appeared interesting to me. The idea of having some chunks of time of focused work and a few minutes to rest were really nice. I've used a few different pomodoro tools and found it to be a great way to keep myself focused and not get distracted by the internet or other tasks that may come up during working hours.

But after a few days of using it, I start to dismiss the alert and keep working during the break time, or yet dismiss the alert to keep reading an e-mail during the work time. If the pomodoro tool just changes automatically from the pomo to the break, it is even worse. That made me abandon the technique or try a different pomodoro tool, usually heavier and more complex. A few of them offers a task list that I never used, as I already have a todo app, others are just a little hidden icon near the clock. There are also the ones in a webpage or made in electron, that feels too heavy for me.

I just wanted something simpler. Something that I can run on my terminal that doesn't require an extension or anything else. Something that would annoy me until I go there to change it to the next Pomo. And that's where PDSHELL comes in! It's a simple, Free and OpenSource tool written in Bash that lets you run any command at start and/or end of the pomodoros, short and/or long breaks.

As many other tools, It also allows you to set intervals (e.g., 25 minutes on, 5 minutes off), which is great for making sure you're taking regular breaks throughout the day and not spending too much time staring at your computer screen, but more than that, the option to run your commands make it possible to do virtually anything.

Do you want to open your todo program at the start of a pomodoro? Maybe change your KDE Activity? Open an YouTube video at breaks? Or even run a script that forbids you of using your browser? Just set your commands/scripts in the config, or multiple config files and you are ready to go!

It is very lightweight and easily extensible, with almost no dependencies except for figlet (not necessary) and sox (that is easily exchangeble).

Did I even mention PDSHELL will randomly play any MP3 files you have on your $HOME/Music folder by default? :)

So go take a look, fork it, change it, send your suggestions or collaborate. I will be happy to help!

https://github.com/brunofontes/pdshell

Pro tip: use it with "mpv --no-vid https://YOUTUBE-URL" to listen to any music on YouTube, even the live ones.