Merge e81d5622b4
into 837b81de92
This commit is contained in:
commit
c45e39712e
3 changed files with 35 additions and 2 deletions
11
README.rst
11
README.rst
|
@ -129,6 +129,17 @@ NOTE: This configuration option currently only works for Linux.
|
||||||
# Set notification expiry to 10 seconds
|
# Set notification expiry to 10 seconds
|
||||||
export AUTO_NOTIFY_EXPIRE_TIME=10000
|
export AUTO_NOTIFY_EXPIRE_TIME=10000
|
||||||
|
|
||||||
|
**Notification Urgency Level**
|
||||||
|
|
||||||
|
By default, commands that exit successfully (with code 0) will send out a notification with the urgency level of "normal", while commands that exit with an error (code > 0), will use level "critical".
|
||||||
|
On some systems (e.g. KDE or Gnome) critical notifications are not desirable as they might never expire.
|
||||||
|
You can override notification urgency levels by setting the appropriate environment variables ``AUTO_NOTIFY_URGENCY_ON_SUCCESS`` or ``AUTO_NOTIFY_URGENCY_ON_ERROR`` to either ``low``, ``normal``, or ``critical``.
|
||||||
|
NOTE: This configuration option currently only works for Linux.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
# Set notification urgency level on error to normal
|
||||||
|
export AUTO_NOTIFY_URGENCY_ON_ERROR="normal"
|
||||||
|
|
||||||
**Ignored Commands**
|
**Ignored Commands**
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,12 @@ export AUTO_NOTIFY_VERSION="0.10.2"
|
||||||
'ssh'
|
'ssh'
|
||||||
'nano'
|
'nano'
|
||||||
)
|
)
|
||||||
|
# Default notification urgency for successful exit codes
|
||||||
|
[[ -z "$AUTO_NOTIFY_URGENCY_ON_SUCCESS" ]] &&
|
||||||
|
export AUTO_NOTIFY_URGENCY_ON_SUCCESS="normal"
|
||||||
|
# Default notification urgency for error exit codes
|
||||||
|
[[ -z "$AUTO_NOTIFY_URGENCY_ON_ERROR" ]] &&
|
||||||
|
export AUTO_NOTIFY_URGENCY_ON_ERROR="critical"
|
||||||
|
|
||||||
function _auto_notify_format() {
|
function _auto_notify_format() {
|
||||||
local MESSAGE="$1"
|
local MESSAGE="$1"
|
||||||
|
@ -51,11 +57,11 @@ function _auto_notify_message() {
|
||||||
body="$(_auto_notify_format "$text" "$command" "$elapsed" "$exit_code")"
|
body="$(_auto_notify_format "$text" "$command" "$elapsed" "$exit_code")"
|
||||||
|
|
||||||
if [[ "$platform" == "Linux" ]]; then
|
if [[ "$platform" == "Linux" ]]; then
|
||||||
local urgency="normal"
|
local urgency="$AUTO_NOTIFY_URGENCY_ON_SUCCESS"
|
||||||
local transient="--hint=int:transient:1"
|
local transient="--hint=int:transient:1"
|
||||||
local icon=${AUTO_NOTIFY_ICON_SUCCESS:-""}
|
local icon=${AUTO_NOTIFY_ICON_SUCCESS:-""}
|
||||||
if [[ "$exit_code" != "0" ]]; then
|
if [[ "$exit_code" != "0" ]]; then
|
||||||
urgency="critical"
|
urgency="$AUTO_NOTIFY_URGENCY_ON_ERROR"
|
||||||
transient=""
|
transient=""
|
||||||
icon=${AUTO_NOTIFY_ICON_FAILURE:-""}
|
icon=${AUTO_NOTIFY_ICON_FAILURE:-""}
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -155,3 +155,19 @@
|
||||||
assert "$lines[1]" same_as 'Notification Title: doom -i has completed in 45s yo'
|
assert "$lines[1]" same_as 'Notification Title: doom -i has completed in 45s yo'
|
||||||
assert "$lines[2]" same_as "Notification Body: doom -i exited with code 0"
|
assert "$lines[2]" same_as "Notification Body: doom -i exited with code 0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test 'auto-notify-send sends notification with low urgency' {
|
||||||
|
AUTO_COMMAND="f bar -r"
|
||||||
|
AUTO_COMMAND_FULL="foo bar -r"
|
||||||
|
AUTO_COMMAND_START=11080
|
||||||
|
AUTO_NOTIFY_URGENCY_ON_SUCCESS="low"
|
||||||
|
AUTO_NOTIFY_URGENCY_ON_ERROR="critical"
|
||||||
|
AUTO_NOTIFY_EXPIRE_TIME=8000
|
||||||
|
run _auto_notify_send
|
||||||
|
|
||||||
|
assert $state equals 0
|
||||||
|
assert "$lines[1]" same_as 'Notification Title: "f bar -r" Completed'
|
||||||
|
assert "$lines[2]" same_as "Notification Body: Total time: 20 seconds"
|
||||||
|
assert "$lines[3]" same_as "Exit code: 0"
|
||||||
|
assert "$lines[4]" same_as "--app-name=zsh --hint=int:transient:1 --urgency=low --expire-time=8000"
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue