3 ## This idea shamelessly stolen from Jonathan Lange's `undistract-me'; see
4 ## <https://github.com/jml/undistract-me>.
8 __wakey_start=nil __wakey_cmd=
9 : ${LONG_RUNNING_COMMAND_TIMEOUT=10}; export LONG_RUNNING_COMMAND_TIMEOUT
10 : ${LONG_RUNNING_IGNORE_LIST=}; export LONG_RUNNING_IGNORE_LIST
13 case $__wakey_start in
15 case $LONG_RUNNING_IGNORE_LIST in
17 *) __wakey_start=$EPOCHREALTIME __wakey_cmd=$1 ;;
24 typeset icon head rc=$? cmd
25 typeset -F now=$EPOCHREALTIME
27 case $__wakey_start in
30 if (( now - __wakey_start >= LONG_RUNNING_COMMAND_TIMEOUT )); then
32 0) icon=trophy-gold head="Command completed" ;;
33 *) icon=dialog-warning head="Command FAILED (rc = $rc)" ;;
35 cmd=${__wakey_cmd//&/&}; cmd=${cmd//</<}; cmd=${cmd//>/>}
36 notify-send -c Wakey -i $icon -t 5000 $head $cmd
43 preexec_functions+=(__wakey_preexec)
44 precmd_functions+=(__wakey_precmd)