From 2737974ba80e498cd30f0919928f59424a71f3c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= Date: Wed, 17 Jul 2024 19:01:14 +0200 Subject: [PATCH] power: Add GSettings key to configure sleep warnings This allows desktop users to disable notifications before sleep due to inactivity. It's always disabled for mobile users to keep the current behavior. --- ...rg.gnome.settings-daemon.plugins.power.gschema.xml.in | 5 +++++ plugins/power/gsd-power-manager.c | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in index 051bcf703..894d554c6 100644 --- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in +++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in @@ -11,6 +11,11 @@ Dim the screen after a period of inactivity If the screen should be dimmed to save power when the computer is idle. + + true + Show warnings before sleep + Weather to show notifications before sleep because of inactivity. This setting is ignored and always false on tablets and handsets. + 900 Sleep timeout computer when on AC diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c index 9ba6536fd..392569678 100644 --- a/plugins/power/gsd-power-manager.c +++ b/plugins/power/gsd-power-manager.c @@ -214,7 +214,7 @@ struct _GsdPowerManager GsdPowerIdleMode previous_idle_mode; /* Device Properties */ - gboolean show_sleep_warnings; + gboolean is_mobile_device; /* Screens */ GsdDisplayConfig *display_config; @@ -2549,7 +2549,8 @@ idle_triggered_idle_cb (GnomeIdleMonitor *monitor, } else if (watch_id == manager->idle_sleep_id) { idle_set_mode_no_temp (manager, GSD_POWER_IDLE_MODE_SLEEP); } else if (watch_id == manager->idle_sleep_warning_id) { - if (manager->show_sleep_warnings) { + if (!manager->is_mobile_device && + g_settings_get_boolean (manager->settings, "show-sleep-warnings")) { show_sleep_warning (manager); } if (manager->user_active_id < 1) { @@ -3024,9 +3025,9 @@ gsd_power_manager_startup (GApplication *app) chassis_type = gnome_settings_get_chassis_type (); if (g_strcmp0 (chassis_type, "tablet") == 0 || g_strcmp0 (chassis_type, "handset") == 0) { - manager->show_sleep_warnings = FALSE; + manager->is_mobile_device = TRUE; } else { - manager->show_sleep_warnings = TRUE; + manager->is_mobile_device = FALSE; } manager->settings = g_settings_new (GSD_POWER_SETTINGS_SCHEMA); -- GitLab