gnome-settings-daemon/SOURCES/0001-Make-power-button-acti...

46 lines
2.7 KiB
Diff

From a94fd3a1a055c55f96adb1482cb96c7a541af7dd Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Wed, 15 Feb 2023 15:27:59 +0100
Subject: [PATCH] Make power-button-action always power off when chassis=server
Servers often don't support hibernation/suspend.
---
.../org.gnome.settings-daemon.plugins.power.gschema.xml.in | 2 +-
plugins/media-keys/gsd-media-keys-manager.c | 7 ++++---
2 files changed, 5 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 e1a8787b..ef0ea530 100644
--- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
+++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
@@ -39,7 +39,7 @@
<key name="power-button-action" enum="org.gnome.settings-daemon.GsdPowerButtonActionType">
<default>'suspend'</default>
<summary>Power button action</summary>
- <description>The action to take when the system power button is pressed. Virtual machines only honor the 'nothing' action, and will shutdown otherwise. Tablets always suspend, ignoring all the other action options.</description>
+ <description>The action to take when the system power button is pressed. Virtual machines and servers only honor the 'nothing' action, and will shutdown otherwise. Tablets always suspend, ignoring all the other action options.</description>
</key>
<key name="power-saver-profile-on-low-battery" type="b">
<default>true</default>
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 60ff2ced..26d0e438 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -2042,9 +2042,10 @@ do_config_power_button_action (GsdMediaKeysManager *manager,
return;
action_type = g_settings_get_enum (priv->power_settings, "power-button-action");
- /* Always power off VMs, except when power-button-action is "nothing" */
- if (g_strcmp0 (priv->chassis_type, "vm") == 0) {
- g_warning_once ("Virtual machines only honor the 'nothing' power-button-action, and will shutdown otherwise");
+ /* Always power off VMs and servers, except when power-button-action is "nothing" */
+ if (g_strcmp0 (priv->chassis_type, "vm") == 0 ||
+ g_strcmp0 (priv->chassis_type, "server")) {
+ g_warning ("Virtual machines only honor the 'nothing' power-button-action, and will shutdown otherwise");
if (action_type != GSD_POWER_BUTTON_ACTION_NOTHING)
power_action (manager, "PowerOff", FALSE);
--
2.37.1