summary refs log tree commit diff
path: root/bin/pomo
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-12-03 12:55:19 +0100
committerRobert Günzler <r@gnzler.io>2020-12-07 19:28:05 +0100
commite93cee56264c7e1d07b422d66430d996fd8b0c40 (patch)
tree862a84aa24710767e06d6917f0cda390c5573526 /bin/pomo
parentc594c384632c9a023258a5ac43f5e28563d4b974 (diff)
Add bin/pomo; simplistic pomodoro timer
Diffstat (limited to 'bin/pomo')
-rwxr-xr-xbin/pomo52
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/pomo b/bin/pomo
new file mode 100755
index 0000000..b14ffed
--- /dev/null
+++ b/bin/pomo
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+WORK=15m
+BREAK=3m
+PAUSE=5m
+
+WORK_BELL=/home/robert/Music/sounds/215415__unfa__ping.wav
+BREAK_BELL=/home/robert/Music/sounds/320655__rhodesmas__level-up-01.wav
+PAUSE_BELL=/home/robert/Music/sounds/32304__acclivity__shipsbell.wav
+END_BELL=/home/robert/Music/sounds/105228__chimerical__old-fashion-radio-jingle-2.wav
+
+log() {
+    echo "$@"
+    notify-send -a pomo "pomo" "$@"
+}
+play() {
+    pw-play --media-role=Event --volume=0.4 "$@"
+}
+nag() {
+    swaynag --type=warning --dismiss-button=ok "$@"
+}
+
+_work() {
+    log "[$(date +%k:%M:%S)] work for ${WORK}"
+    play "${WORK_BELL}" 1>&2 2>/dev/null &
+    sleep "${WORK}"
+}
+
+_break() {
+    log "[$(date +%k:%M:%S)] take a ${BREAK} break"
+    play "${BREAK_BELL}" 1>&2 2>/dev/null &
+    nag -m "pomo: take a ${BREAK} break"
+    sleep "${BREAK}"
+}
+
+_pause() {
+    log "[$(date +%k:%M:%S)] pause for ${PAUSE}"
+    play "${PAUSE_BELL}" 1>&2 2>/dev/null &
+    nag -m "pomo: pause for ${PAUSE}"
+    sleep "${PAUSE}"
+}
+
+trap '{ printf "\n"; log "[$(date +%k:%M:%S)] goodbye"; exit 0; }' INT
+
+while true; do
+    _work && _break
+    _work && _break
+    _work && _break
+    _work && _pause
+    aplay "${END_BELL}" 1>&2 2>/dev/null &
+    nag -m "[$(date +%k:%M:%S)] the end"
+done