/muccadoro

🍅 Pomodoro timer using figlet, cowsay, and optionally lolcat 🐮

Primary LanguageShellApache License 2.0Apache-2.0

🍅 Implementation of the Pomodoro Technique using figlet(6), cowsay(1), and optionally lolcat 🐮

Screenshot of muccadoro

Features

  • Sends desktop notifications.
  • Can't stop. SIGTSTP (Ctrl-Z) is trapped. Pomodoros are uninterruptible.
  • Traps SIGINT to make Ctrl-C abandon pomodoros.
  • Silly mode (or is it stern?) is enabled with -s (can be specified multiple times).
  • Avoids using clear so the terminal doesn't flash.
  • Hides the cursor.
  • Disables echoing of stdin.
  • Keeps the cow at the bottom of your terminal.
  • Prints some stats when exiting: when pomodoros started and ended and the length of breaks (can be redirected to a file).

Installation

AUR

Muccadoro is available in the AUR: https://aur.archlinux.org/packages/muccadoro.

Manual

Put muccadoro inside some directory in your PATH, e.g. ~/bin/ (or ~/.local/bin/):

curl -fLo ~/bin/muccadoro https://raw.githubusercontent.com/meribold/muccadoro/master/muccadoro

Snap

sudo snap install muccadoro

Notes

I recommend creating an alias such as

alias pomo='muccadoro | tee -ai ~/pomodoros.txt'

See "Saving summaries to a file" for details.

Usage notes

The first positional argument is the amount of minutes one pomodoro should take (default: 25). If you want 20-minute pomodoros, use muccadoro 20, for example. The program exits after four pomodoros have been completed and a longer break should be taken.

Saving summaries to a file

You may want to keep a record of how many pomodoros you did and when (and for how long) you took breaks. This is supported by simply redirecting stdout:

muccadoro >> ~/pomodoros.txt

If you want to save the summary but also have it printed to stdout, use:

muccadoro | tee -ai ~/pomodoros.txt

The -i (--ignore-interrupts) flag of tee makes sure the summary is correctly processed in case the pipeline was killed with Ctrl-C (which is the intended way to quit when doing less than four pomodoros).