Browse Source

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

Matthieu Baerts 2 years ago
parent
commit
8d58994d76
2 changed files with 18 additions and 2 deletions
  1. 3 0
      plugins/zbell/README.md
  2. 15 2
      plugins/zbell/zbell.plugin.zsh

+ 3 - 0
plugins/zbell/README.md

@@ -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_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
 
 Adapted from an original version by [Jean-Philippe Ouellet](https://github.com/jpouellet).

+ 15 - 2
plugins/zbell/zbell.plugin.zsh

@@ -29,18 +29,31 @@ autoload -Uz regexp-replace || return
 # initialize zbell_ignore if not set
 (( ${+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
 # 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
 # empty string just results in an empty array.
 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
 # $1: command
 # $2: duration in seconds
 zbell_notify() {
-	type notify-send > /dev/null && \
-		notify-send -i terminal "Command completed in ${2}s:" $1
+	zbell_ui_notify "${@}"
 	print -n "\a"
 }