diff options
Diffstat (limited to 'bin/menuscripts/pomo')
| -rwxr-xr-x | bin/menuscripts/pomo | 101 | 
1 files changed, 46 insertions, 55 deletions
diff --git a/bin/menuscripts/pomo b/bin/menuscripts/pomo index e8795e7..eb4c30b 100755 --- a/bin/menuscripts/pomo +++ b/bin/menuscripts/pomo @@ -1,78 +1,69 @@  #!/bin/sh  ### FUNCTIONS -notif() {  -    herbe "pomo" "$1" & -    sleep 1 -    pkill -SIGUSR1 herbe +notif() { +	herbe "pomo" "$1" & +	sleep 1 +	pkill -SIGUSR1 herbe  } -logn () { >&2 printf '%s\n' "$@"; } -log () { >&2 printf '%s' "$@"; }  # Plays ringing sound  # Then wait for user input to start/end the break -player_command() -{ -	>&2 printf ' > ' +player_command() { +	printf >&2 ' > '  	[ -r "$ringSound" ] || PLAYER=""  	case "$PLAYER" in -	    mpv) mpv --loop --msg-level=all=no "$ringSound" ;; -	    "") head -n 1;; -	    *) $PLAYER "$ringSound" ;; +	mpv) mpv --loop --msg-level=all=no "$ringSound" ;; +	"") head -n 1 ;; +	*) $PLAYER "$ringSound" ;;  	esac  }  # $1: time in minutes  # $2: msg for notification -ring_ring() -{ -	logn "$(date '+%R') B $round" +ring_ring() { +	printf >&2 '%s B %s\n' "$(date '+%R')" "$round"  	player_command -    herbe "pomo" "$2" & -    sleep "${1}m" +	herbe "pomo" "$2" & +	sleep "${1}m"  	player_command -	>&2 printf '\n' +	printf >&2 '\n'  } -### PROGRAM -main() -{ -	round="${1-0}" -	case "$round" in -		0|1|2|3) ;; -		ring) ;; -		*) logn "Invalid \$round value." && exit 1 ;; -	esac +### Program -	ringSound="${XDG_DATA_HOME:-$HOME/.local/share}"/pomo/ring.aac -	[ -r "$ringSound" ] && logn "ring: $ringSound" +trap 'exit 1' INT -	if [ "$1" = "ring" ] -	then -	    player_command -	    exit -	fi +round="${1:-0}" +# args +case "$round" in +0 | 1 | 2 | 3) ;; +ring) ;; +*) printf >&2 'Invalid value: %s\n' "$round"; exit 1 ;; +esac -	# Countdown -	for msg in "three" "two" "one" -	do notif "$msg" -	done +ringSound="${XDG_DATA_HOME:-$HOME/.local/share}"/pomo/ring.aac +[ -r "$ringSound" ] && printf >&2 'ring: %s\n' "$ringSound" -	while true -	do -		notif "START" -		logn "$(date '+%R') S $round" -		sleep 25m -		if [ "$round" -eq 3 ] -		then -			ring_ring 20 "GIGA BREAK TIME" -			round=0 -		else -			ring_ring 5 "BREAK TIME" -			round=$((round+1)) -		fi -	done -} +if [ "$1" = "ring" ]; then +	player_command +	exit +fi -trap 'exit 1' INT -main "$@" +# Countdown +for msg in "three" "two" "one"; do +	notif "$msg" +done + +while true; do +	notif "START" +	printf >&2 '%s S %s\n' "$(date '+%R')" "$round" +	sleep 25m +	if [ "$round" -eq 3 ]; then +		ring_ring 20 "GIGA BREAK TIME" +		round=0 +	else +		ring_ring 5 "BREAK TIME" +		round=$((round + 1)) +	fi +done  | 
