zlong_alert.zsh will send a desktop notification and sound a
bell to alert you when a
command that has taken a long time (default: 15 seconds) has completed.
Desktop notifications are sent using notify-send on Linux and using alerter on MacOS.
Ensure that you downloaded the alerter binary from here, have placed it in your PATH, and given the file executable permissions before continuing with any of the installation methods.
zplug "kevinywlui/zlong_alert.zsh"-
Download the plugin
a. Clone into
$ZSH_CUSTOM/plugins/zlong_alert.or
b. if on archlinux you can use this aur package
-
Add
zlong_alerttopluginsin.zshrc.
Add in your ~/.zimrc:
zmodule "kevinywlui/zlong_alert.zsh" --name zlong_alertThis script just needs to be sourced so add this to your .zshrc:
source /path/to/zlong_alert.zshThere are 7 variables you can set that will alter the behavior this script.
zlong_duration(default:15): number of seconds that is considered a long duration.zlong_ignore_cmds(default:"vim ssh"): commands to ignore (do not notify).zlong_ignore_pfxs(default:"sudo time"): prefixes to ignore (consider command in argument).zlong_send_notifications(default:true): whether to send notifications.zlong_terminal_bell(default:true): whether to enable the terminal bell.zlong_ignorespace(default:false): whether to ignore commands with a leading spacezlong_message(default:'"Done: $cmd Time: $ftime"'): define a custom message to display
For example, adding the following anywhere in your .zshrc
zlong_send_notifications=false
zlong_duration=2
zlong_ignore_cmds="vim ssh pacman yay"will alert you, without sending a notification, if a command has lasted for more
than 2 seconds, provided that the command does not start with any of vim ssh pacman yay.
zlong_message requires very specific syntax in order to function correctly.
Arguments passed must be wrapped in single quotes and then doubles quotes in order
for the variables to be passed in correctly to the evaluation function. Currently,
the variables $cmd and $ftime are available to be included in your zlong_message
definition. Some notification clients (i.e. notify-send) allow both a heading and
a body message to be passed. Examples of how to do so are below:
zlong_message='"Done: $cmd Time: $ftime"'
zlong_message='"Finished ($ftime)" "$cmd"'See CHANGELOG
This script is the result of me trying to understand and emulate this gist: https://gist.github.com/jpouellet/5278239 My version fixes some things (possibly bugs?) that I did not like about the original version.