aboutsummaryrefslogtreecommitdiff
path: root/hooks/on_quit
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/on_quit')
-rwxr-xr-xhooks/on_quit36
1 files changed, 22 insertions, 14 deletions
diff --git a/hooks/on_quit b/hooks/on_quit
index 44957e8..f89f6cf 100755
--- a/hooks/on_quit
+++ b/hooks/on_quit
@@ -7,22 +7,30 @@
# $2 seconds time actually elapsed, excluding time spent paused
# $3 comment the -c text, or an empty string
#
-# A countdown abandoned after two seconds reports 2, not the duration
-# you asked for. That is what makes this useful for tracking follow-
-# through rather than intent.
+# $2 is what really ran, not what you asked for: a 25m countdown
+# abandoned after four minutes reports 240. Compare against the START
+# line written by on_start to see follow-through.
+#
+# If your build has the logging patch, `timer -r` already records this
+# session -- it logs every run, completed or not. What it cannot show is
+# that the run was cut short, which is what the record below adds.
mode=$1 seconds=$2 comment=$3
-log=${XDG_STATE_HOME:-$HOME/.local/state}/ttym
-mkdir -p "$log" 2>/dev/null || exit 0
+# --- session record ------------------------------------------------------
+state=${XDG_STATE_HOME:-$HOME/.local/state}/ttym
+if mkdir -p "$state" 2>/dev/null; then
+ printf '%s\tQUIT\t%s\t%s\t%s\n' \
+ "$(date +%Y-%m-%dT%H:%M:%S)" "$mode" "$seconds" "$comment" \
+ >> "$state/sessions.tsv"
+fi
+
+# --- leave focus mode ----------------------------------------------------
+command -v dunstctl > /dev/null 2>&1 && dunstctl set-paused false
+[ "$mode" = countdown ] && command -v playerctl > /dev/null 2>&1 && playerctl play 2>/dev/null
+[ "$mode" = countdown ] && command -v mpc > /dev/null 2>&1 && mpc -q play 2>/dev/null
-printf '%s\t%s\t%s\t%s\n' \
- "$(date +%Y-%m-%dT%H:%M:%S)" "$mode" "$seconds" "$comment" \
- >> "$log/abandoned.tsv"
+# --- timewarrior ---------------------------------------------------------
+# command -v timew > /dev/null 2>&1 && timew stop > /dev/null 2>&1
-# Restore the terminal title set by on_start.
-case $TERM in
-xterm*|rxvt*|tmux*|screen*|alacritty|foot*)
- printf '\033]0;%s\007' "${SHELL##*/}" > /dev/tty
- ;;
-esac
+exit 0