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 case ${DISPLAY-nil} in
46 if whence notify-send
>/dev
/null
2>&1; then
47 preexec_functions
+=(__wakey_preexec
)
48 precmd_functions
+=(__wakey_precmd
)