summary refs log tree commit diff
diff options
context:
space:
mode:
-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