feat(zbell): add option not to use notify-send (#10082)

This commit is contained in:
Matthieu Baerts 2021-12-29 10:38:00 +01:00 committed by GitHub
parent 65bbd24eec
commit 8d58994d76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View file

@ -24,6 +24,9 @@ These settings need to be set in your zshrc file, before Oh My Zsh is sourced.
zbell_ignore=($EDITOR $PAGER) zbell_ignore=($EDITOR $PAGER)
``` ```
- `zbell_use_notify_send`: If set to `true`, `notify-send` tool is used -- if
available -- to display a popup on the screen. Default: `true` (enabled).
## Author ## Author
Adapted from an original version by [Jean-Philippe Ouellet](https://github.com/jpouellet). Adapted from an original version by [Jean-Philippe Ouellet](https://github.com/jpouellet).

View file

@ -29,18 +29,31 @@ autoload -Uz regexp-replace || return
# initialize zbell_ignore if not set # initialize zbell_ignore if not set
(( ${+zbell_ignore} )) || zbell_ignore=($EDITOR $PAGER) (( ${+zbell_ignore} )) || zbell_ignore=($EDITOR $PAGER)
# initialize zbell_use_notify_send if not set
(( ${+zbell_use_notify_send} )) || zbell_use_notify_send=true
# initialize it because otherwise we compare a date and an empty string # initialize it because otherwise we compare a date and an empty string
# the first time we see the prompt. it's fine to have lastcmd empty on the # the first time we see the prompt. it's fine to have lastcmd empty on the
# initial run because it evaluates to an empty string, and splitting an # initial run because it evaluates to an empty string, and splitting an
# empty string just results in an empty array. # empty string just results in an empty array.
zbell_timestamp=$EPOCHSECONDS zbell_timestamp=$EPOCHSECONDS
# UI notification function
# $1: command
# $2: duration in seconds
zbell_ui_notify() {
[[ $zbell_use_notify_send != "true" ]] && return
if type notify-send > /dev/null; then
notify-send -i terminal "Command completed in ${2}s:" $1
fi
}
# default notification function # default notification function
# $1: command # $1: command
# $2: duration in seconds # $2: duration in seconds
zbell_notify() { zbell_notify() {
type notify-send > /dev/null && \ zbell_ui_notify "${@}"
notify-send -i terminal "Command completed in ${2}s:" $1
print -n "\a" print -n "\a"
} }