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
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,
dunst is paused. See the running command and the dunst man page for more

View File

@ -14,17 +14,17 @@ show_help() {
cat <<-EOH
Usage: dunstctl <command> [parameters]"
Commands:
action Perform the default action, or open the
context menu of the notification at the
given position
close Close the last notification
close-all Close the all notifications
context Open context menu
history-pop Pop one notification from history
running Check if dunst is running or paused
set-running [true|false] Set the pause status
debug Print debugging information
help Show this help
action Perform the default action, or open the
context menu of the notification at the
given position
close Close the last notification
close-all Close the all notifications
context Open context menu
history-pop Pop one notification from history
running Check if dunst is running or paused
set-running [true|false|toggle] Set the pause status
debug Print debugging information
help Show this help
EOH
}
dbus_send_checked() {
@ -69,10 +69,19 @@ case "${1:-}" in
;;
"set-running")
[ "${2:-}" ] \
|| die "No status parameter specified. Please give either 'true' or 'false' as running parameter."
[ "${2}" = "true" ] || [ "${2}" = "false" ] \
|| die "Please give either 'true' or 'false' as running parameter."
property_set running variant:boolean:"${2}"
|| die "No status parameter specified. Please give either 'true', 'false' or 'toggle' as running parameter."
[ "${2}" = "true" ] || [ "${2}" = "false" ] || [ "${2}" = "toggle" ] \
|| 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}"
fi
;;
"help"|"--help"|"-h")
show_help