#!/bin/bash # # gromo - To count your daily gromodoros :thumbsup # # Dependencies: curl and mpv for the 'ding' sound; slock to force you to rest :) ################################################################################ DEFAULT_DING=https://gramos.me/ding.opus GROMO_SECONDS=$((60 * 20)) STOP_SECONDS=20 DATA_DIR=${XDG_DATA_HOME:-$HOME/.local/share}/gromo TODAY_FILE=$DATA_DIR/$(date -I) DING_FILE=${XDG_CACHE_HOME:-$HOME/.cache}/gromo/ding.opus mkdir -p "$DATA_DIR" [ -f "$DING_FILE" ] || curl $DEFAULT_DING --create-dirs -so "$DING_FILE" gromos=0 [ -f "$TODAY_FILE" ] && read -r gromos < "$TODAY_FILE" echo "Gromos today: $gromos" while true; do read -rn1 -p "Press any key to start gromo > " echo -ne "\r \r" sleep $GROMO_SECONDS gromos=$((gromos+1)) seconds=$((gromos * GROMO_SECONDS)) echo "$gromos" > "$TODAY_FILE" (sleep $STOP_SECONDS && mpv --no-terminal "$DING_FILE") & slock echo $seconds if [ $seconds -lt 60 ]; then gromo_time="$seconds seconds" elif [ $seconds -lt 3600 ]; then gromo_time="$((seconds / 60)) minutes" else gromo_time="$((seconds / 3600)) hours" fi echo -ne "Completed $gromos gromos today ($gromo_time). " done