Change running to paused state on "server" side
This allows the boolean "inversion" to happen in the C code instead of post-processing in the dunstctl shell script.
This commit is contained in:
parent
2e301b1d39
commit
0dfcc1420d
25
dunstctl
25
dunstctl
@ -44,14 +44,6 @@ property_set() {
|
||||
dbus_send_checked --print-reply=literal --dest="${DBUS_NAME}" "${DBUS_PATH}" "${DBUS_IFAC_PROP}.Set" "string:${DBUS_IFAC_DUNST}" "string:${1}" "${2}"
|
||||
}
|
||||
|
||||
invert_boolean() {
|
||||
if [ "${1}" = "true" ]; then
|
||||
printf "%s\n" "false"
|
||||
elif [ "${1}" = "false" ]; then
|
||||
printf "%s\n" "true"
|
||||
fi
|
||||
}
|
||||
|
||||
command -v dbus-send >/dev/null 2>/dev/null || \
|
||||
die "Command dbus-send not found"
|
||||
|
||||
@ -73,10 +65,7 @@ case "${1:-}" in
|
||||
method_call "${DBUS_IFAC_DUNST}.NotificationShow" >/dev/null
|
||||
;;
|
||||
"is-paused")
|
||||
running=$(property_get running | ( read -r _ _ running; printf "%s\n" "${running}"; ))
|
||||
# invert boolean to indiciate pause status rather than running one
|
||||
paused=$(invert_boolean "${running}")
|
||||
printf "%s\n" "${paused}"
|
||||
property_get paused | ( read -r _ _ paused; printf "%s\n" "${paused}"; )
|
||||
;;
|
||||
"set-paused")
|
||||
[ "${2:-}" ] \
|
||||
@ -84,16 +73,14 @@ case "${1:-}" in
|
||||
[ "${2}" = "true" ] || [ "${2}" = "false" ] || [ "${2}" = "toggle" ] \
|
||||
|| die "Please give either 'true', 'false' or 'toggle' as paused parameter."
|
||||
if [ "${2}" = "toggle" ]; then
|
||||
running=$(property_get running | ( read -r _ _ running; printf "%s\n" "${running}"; ))
|
||||
if [ "${running}" = "true" ]; then
|
||||
property_set running variant:boolean:false
|
||||
paused=$(property_get paused | ( read -r _ _ paused; printf "%s\n" "${paused}"; ))
|
||||
if [ "${paused}" = "true" ]; then
|
||||
property_set paused variant:boolean:false
|
||||
else
|
||||
property_set running variant:boolean:true
|
||||
property_set paused variant:boolean:true
|
||||
fi
|
||||
else
|
||||
# invert boolean to indiciate running status rather than pause one
|
||||
running=$(invert_boolean "${2}")
|
||||
property_set running variant:boolean:"${running}"
|
||||
property_set paused variant:boolean:"$2"
|
||||
fi
|
||||
;;
|
||||
"help"|"--help"|"-h")
|
||||
|
@ -588,8 +588,8 @@ GVariant *dbus_cb_dunst_Properties_Get(GDBusConnection *connection,
|
||||
{
|
||||
struct dunst_status status = dunst_status_get();
|
||||
|
||||
if (STR_EQ(property_name, "running")) {
|
||||
return g_variant_new_boolean(status.running);
|
||||
if (STR_EQ(property_name, "paused")) {
|
||||
return !g_variant_new_boolean(status.running);
|
||||
} else {
|
||||
LOG_W("Unknown property!\n");
|
||||
*error = g_error_new(G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_PROPERTY, "Unknown property");
|
||||
@ -606,8 +606,8 @@ gboolean dbus_cb_dunst_Properties_Set(GDBusConnection *connection,
|
||||
GError **error,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (STR_EQ(property_name, "running")) {
|
||||
dunst_status(S_RUNNING, g_variant_get_boolean(value));
|
||||
if (STR_EQ(property_name, "paused")) {
|
||||
dunst_status(S_RUNNING, !g_variant_get_boolean(value));
|
||||
wake_up();
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user