diff options
Diffstat (limited to 'bin/pomo')
| -rwxr-xr-x | bin/pomo | 68 |
1 files changed, 44 insertions, 24 deletions
diff --git a/bin/pomo b/bin/pomo index b14ffed..c26729e 100755 --- a/bin/pomo +++ b/bin/pomo @@ -1,8 +1,19 @@ #!/bin/sh -WORK=15m -BREAK=3m -PAUSE=5m +[ "$1" = "-h" ] || [ "$1" = "--help" ] && { + echo "usage: $(basename $(readlink -f -- "$0")) [-1] WORK BREAK PAUSE" + echo + echo " WORK (default: 15m)" + echo " BREAK (default: 3m)" + echo " PAUSE (default: 5m)" + echo + exit 0 +} + +[ "$1" = "-1" ] && _once=1 && shift +WORK=${1:-15}m +BREAK=${2:-3}m +PAUSE=${3:-5}m WORK_BELL=/home/robert/Music/sounds/215415__unfa__ping.wav BREAK_BELL=/home/robert/Music/sounds/320655__rhodesmas__level-up-01.wav @@ -10,43 +21,52 @@ 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" "$@" + echo "$@" + notify-send -i /usr/share/icons/mdi/scalable/progress-clock.svg -a pomo "pomo" "$@" } play() { - pw-play --media-role=Event --volume=0.4 "$@" + paplay --property=media.role=event --volume=0.2 "$@" } nag() { - swaynag --type=warning --dismiss-button=ok "$@" + 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}" + play "${WORK_BELL}" 1>&2 2>/dev/null & + log "[$(date +%k:%M:%S)] work for ${WORK}" + 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}" + play "${BREAK_BELL}" 1>&2 2>/dev/null & + nag -m "pomo: take a ${BREAK} break" + log "[$(date +%k:%M:%S)] 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}" + play "${PAUSE_BELL}" 1>&2 2>/dev/null & + nag -m "pomo: pause for ${PAUSE}" + log "[$(date +%k:%M:%S)] pause for ${PAUSE}" + sleep "${PAUSE}" +} + +_end() { + aplay "${END_BELL}" 1>&2 2>/dev/null & + nag -m "[$(date +%k:%M:%S)] the end" } trap '{ printf "\n"; log "[$(date +%k:%M:%S)] goodbye"; exit 0; }' INT +if [ -n "${_once}" ]; then + _work && _end + exit 0 +fi + 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" + _work && _break + _work && _break + _work && _break + _work && _pause + _end done |