#!/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