cattle-reset-elapsed() { (( last_cmd_at = SECONDS )) } cattle-ping-timer() { kill -USR1 "$reaper_pid" } cattle-slay-reaper() { kill -KILL "$reaper_pid" } cd() { command cd "$@" printf %s "$PWD" > /tmp/iterm2-prev-dir.txt } { trap "" INT trap cattle-reset-elapsed USR1 last_cmd_at=0 while sleep 1; do (( elapsed = SECONDS - last_cmd_at )) if (( elapsed > 600 )); then kill -KILL "$$" exit fi done } & reaper_pid=$! PROMPT_COMMAND+=(cattle-ping-timer) trap cattle-slay-reaper EXIT if [[ -f /tmp/iterm2-prev-dir.txt ]]; then cur_time=$(date +%s) last_mod=$(stat -f%c /tmp/iterm2-prev-dir.txt) if (( cur_time - last_mod > 1200 )); then rm -f /tmp/iterm2-prev-dir.txt else dir=$(