diff options
Diffstat (limited to 'hooks/on_quit')
| -rwxr-xr-x | hooks/on_quit | 36 |
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 |
