aboutsummaryrefslogtreecommitdiffstats
path: root/waybar-breaktimer.sh
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-06-23 12:12:29 +0200
committerDanilo M. <danix@danix.xyz>2026-06-23 12:21:50 +0200
commitd15531a76f87e29e32c18ba64445003cafe1734a (patch)
tree52c4c17434b4cba9212a32907a149a592fb185e4 /waybar-breaktimer.sh
downloadbreaktimer-d15531a76f87e29e32c18ba64445003cafe1734a.tar.gz
breaktimer-d15531a76f87e29e32c18ba64445003cafe1734a.zip
Initial commit: breaktimer break-reminder daemon with Waybar module
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'waybar-breaktimer.sh')
-rwxr-xr-xwaybar-breaktimer.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/waybar-breaktimer.sh b/waybar-breaktimer.sh
new file mode 100755
index 0000000..b445893
--- /dev/null
+++ b/waybar-breaktimer.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+# waybar-breaktimer.sh - modulo custom Waybar per breaktimer
+# Legge il tempo rimanente gia' congelato dal daemon (no calcolo next-now).
+
+RUNTIME="${XDG_RUNTIME_DIR:-/tmp}"
+PID_FILE="$RUNTIME/breaktimer.pid"
+STATE_FILE="$RUNTIME/breaktimer.state"
+PHASE_FILE="$RUNTIME/breaktimer.phase"
+REMAIN_FILE="$RUNTIME/breaktimer.remain"
+
+is_running() {
+ [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE" 2>/dev/null)" 2>/dev/null
+}
+
+if ! is_running; then
+ printf '{"text":"󰒲","tooltip":"breaktimer: fermo (click dx per avviare)","class":"stopped"}\n'
+ exit 0
+fi
+
+state="$(cat "$STATE_FILE" 2>/dev/null)"
+phase="$(cat "$PHASE_FILE" 2>/dev/null)"
+
+rem="$(cat "$REMAIN_FILE" 2>/dev/null)"
+[ -z "$rem" ] && rem=0
+[ "$rem" -lt 0 ] && rem=0
+countdown=$(printf '%d:%02d' $(( rem / 60 )) $(( rem % 60 )))
+
+if [ "$state" = "paused" ]; then
+ printf '{"text":"󰏤 %s","tooltip":"breaktimer in pausa (click sx per riprendere)","class":"paused"}\n' "$countdown"
+ exit 0
+fi
+
+case "$phase" in
+ working)
+ printf '{"text":"󰐊 %s","tooltip":"lavoro: pausa tra %s (sx: pausa, dx: stop/restart)","class":"working"}\n' "$countdown" "$countdown"
+ ;;
+ breaking)
+ printf '{"text":"󰗽 %s","tooltip":"micro-pausa: muoviti! ripresa tra %s","class":"breaking"}\n' "$countdown" "$countdown"
+ ;;
+ longbreak)
+ printf '{"text":"󰒲 %s","tooltip":"pausa lunga: stacca! ripresa tra %s","class":"longbreak"}\n' "$countdown" "$countdown"
+ ;;
+ *)
+ printf '{"text":"󰐊 %s","tooltip":"breaktimer attivo","class":"working"}\n' "$countdown"
+ ;;
+esac