Honor sleep inactive-act-type-server g-s-d setting

Related: RHEL-59200
This commit is contained in:
Felipe Borges 2024-08-12 10:28:45 +02:00 committed by Felipe Borges
parent ce85053922
commit 8f8a154e0b
2 changed files with 71 additions and 0 deletions

View File

@ -24,6 +24,9 @@ License: GPL-2.0-or-later AND CC0-1.0
URL: https://gitlab.gnome.org/GNOME/gnome-control-center/
Source0: https://download.gnome.org/sources/%{name}/46/%{name}-%{tarball_version}.tar.xz
# https://issues.redhat.com/browse/RHEL-59200
Patch0: power-honor-sleep-inactive-ac-type-server-setting.patch
BuildRequires: desktop-file-utils
BuildRequires: docbook-style-xsl libxslt
BuildRequires: gcc

View File

@ -0,0 +1,68 @@
From fb81961ba88c70adc8ccabdb1b60786d1276108a Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Tue, 10 Sep 2024 14:29:56 +0200
Subject: [PATCH] power: Read downstream sleep-inactive-ac-type-server gsetting
We have a downstream side-setting for when the hostnamed chassis
type is "server". This allows for having a different "default" in
each chassis-type.
---
panels/power/cc-power-panel.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index 544cfd9be..bc320f9ef 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -625,8 +625,11 @@ update_automatic_suspend_label (CcPowerPanel *self)
gint ac_timeout;
gint battery_timeout;
const gchar *s;
+ gboolean is_server = FALSE;
- ac_action = g_settings_get_enum (self->gsd_settings, "sleep-inactive-ac-type");
+ is_server = g_strcmp0 (self->chassis_type, "server") == 0;
+
+ ac_action = g_settings_get_enum (self->gsd_settings, is_server ? "sleep-inactive-ac-type-server" : "sleep-inactive-ac-type");
battery_action = g_settings_get_enum (self->gsd_settings, "sleep-inactive-battery-type");
ac_timeout = g_settings_get_int (self->gsd_settings, "sleep-inactive-ac-timeout");
battery_timeout = g_settings_get_int (self->gsd_settings, "sleep-inactive-battery-timeout");
@@ -781,6 +784,9 @@ setup_power_saving (CcPowerPanel *self)
g_autoptr(GDBusConnection) connection = NULL;
g_autoptr(GError) error = NULL;
int value;
+ gboolean is_server = FALSE;
+
+ is_server = g_strcmp0 (self->chassis_type, "server") == 0;
/* ambient light sensor */
self->iio_proxy_watch_id =
@@ -838,7 +844,7 @@ setup_power_saving (CcPowerPanel *self)
*/
if (g_settings_get_int (self->gsd_settings, "sleep-inactive-ac-timeout") == 0)
{
- g_settings_set_enum (self->gsd_settings, "sleep-inactive-ac-type", GSD_POWER_ACTION_NOTHING);
+ g_settings_set_enum (self->gsd_settings, is_server ? "sleep-inactive-ac-type-server" : "sleep-inactive-ac-type", GSD_POWER_ACTION_NOTHING);
g_settings_set_int (self->gsd_settings, "sleep-inactive-ac-timeout", 3600);
}
if (g_settings_get_int (self->gsd_settings, "sleep-inactive-battery-timeout") == 0)
@@ -860,15 +866,7 @@ setup_power_saving (CcPowerPanel *self)
G_SETTINGS_BIND_DEFAULT,
get_sleep_type, set_sleep_type, NULL, NULL);
- g_object_set_data (G_OBJECT (self->suspend_on_battery_delay_combo), "_gsettings_key", "sleep-inactive-battery-timeout");
- value = g_settings_get_int (self->gsd_settings, "sleep-inactive-battery-timeout");
- set_value_for_combo (self->suspend_on_battery_delay_combo, value);
- g_signal_connect_object (self->suspend_on_battery_delay_combo, "changed",
- G_CALLBACK (combo_time_changed_cb), self, G_CONNECT_SWAPPED);
- g_object_bind_property (self->suspend_on_battery_switch_row, "active", self->suspend_on_battery_delay_combo, "sensitive",
- G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
-
- g_settings_bind_with_mapping (self->gsd_settings, "sleep-inactive-ac-type",
+ g_settings_bind_with_mapping (self->gsd_settings, is_server ? "sleep-inactive-ac-type-server" : "sleep-inactive-ac-type",
self->suspend_on_ac_switch_row, "active",
G_SETTINGS_BIND_DEFAULT,
get_sleep_type, set_sleep_type, NULL, NULL);
--
2.45.2