Add toggle option to dunstctl set-running command

Fixes #709
This commit is contained in:
mrossinek 2020-05-01 19:13:13 +02:00
parent 337ff1edb5
commit c45a9eac73
No known key found for this signature in database
GPG Key ID: 454148C1EEA3C435
2 changed files with 25 additions and 16 deletions

View File

@ -40,7 +40,7 @@ in dunst.
Check if dunst is currently running or paused. If dunst is paused notifications Check if dunst is currently running or paused. If dunst is paused notifications
will be kept but not shown until it is unpaused. will be kept but not shown until it is unpaused.
=item B<set-running> true/false =item B<set-running> true/false/toggle
Set the paused status of dunst. If true, dunst is running normally, if false, Set the paused status of dunst. If true, dunst is running normally, if false,
dunst is paused. See the running command and the dunst man page for more dunst is paused. See the running command and the dunst man page for more

View File

@ -22,7 +22,7 @@ show_help() {
context Open context menu context Open context menu
history-pop Pop one notification from history history-pop Pop one notification from history
running Check if dunst is running or paused running Check if dunst is running or paused
set-running [true|false] Set the pause status set-running [true|false|toggle] Set the pause status
debug Print debugging information debug Print debugging information
help Show this help help Show this help
EOH EOH
@ -69,10 +69,19 @@ case "${1:-}" in
;; ;;
"set-running") "set-running")
[ "${2:-}" ] \ [ "${2:-}" ] \
|| die "No status parameter specified. Please give either 'true' or 'false' as running parameter." || die "No status parameter specified. Please give either 'true', 'false' or 'toggle' as running parameter."
[ "${2}" = "true" ] || [ "${2}" = "false" ] \ [ "${2}" = "true" ] || [ "${2}" = "false" ] || [ "${2}" = "toggle" ] \
|| die "Please give either 'true' or 'false' as running parameter." || die "Please give either 'true', 'false' or 'toggle' as running parameter."
if [ "${2}" = "toggle" ]; then
paused=$(property_get running | ( read -r _ _ paused; printf "%s\n" "${paused}"; ))
if [ "${paused}" = "true" ]; then
property_set running variant:boolean:false
else
property_set running variant:boolean:true
fi
else
property_set running variant:boolean:"${2}" property_set running variant:boolean:"${2}"
fi
;; ;;
"help"|"--help"|"-h") "help"|"--help"|"-h")
show_help show_help