dots


dots / config / .local / bin
xxwhirlpool  ·  2026-03-10

pomodoro

 1#!/usr/bin/env bash
 2#
 3# adapted from bashbunni's zshrc example:
 4#
 5# https://gist.github.com/bashbunni/3880e4194e3f800c4c494de286ebc1d7
 6
 7notif() {
 8	notify-send "'$val' session done"
 9	spd-say -t female3 -r +35 "'$val' session done"
10}
11
12quick() {
13	val="quick"
14	echo -e "⏱️ $val ‧₊˚🌈✩ ₊˚🫧⊹♡" | lolcat -p 0.2
15	timer "15m"
16	notif
17}
18
19work() {
20	val="work"
21	echo -e "⏱️ $val ‧₊˚🌈✩ ₊˚🫧⊹♡" | lolcat -p 0.2
22	timer "45m"
23	notif
24}
25
26takebreak() {
27	val="break"
28	echo -e "⏱️ $val ‧₊˚🌈✩ ₊˚🫧⊹♡" | lolcat -p 0.2
29	timer "20m"
30	notif
31}
32
33custom() {
34	val="custom"
35	choice=$(gum input --placeholder duration | awk '{print $0"m"}' )
36	echo -e "⏱️ $val: $choice ‧₊˚🌈✩ ₊˚🫧⊹♡" | lolcat -p 0.2
37	timer "$choice"
38	notif
39}
40
41list() {
42	pick=$(gum choose --limit 1 --header "pomodoro timer!" "quick" "work" "break" "custom")
43	case "$pick" in
44		*quick) quick;;
45		*work) work;;
46		*takebreak) takebreak;;
47		*custom) custom;;
48		*) exit;;
49	esac
50}
51
52list