[gnome-shell] status/powerProfiles: Remember last selected non-default profile
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] status/powerProfiles: Remember last selected non-default profile
- Date: Mon, 1 Aug 2022 12:38:13 +0000 (UTC)
commit 4f155d3757e35f090fdcee2d8f3a0c2c7271512f
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jul 29 20:00:18 2022 +0200
status/powerProfiles: Remember last selected non-default profile
When we move to quick settings, this will allow us to toggle
between two profiles even where more profiles are available.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>
data/org.gnome.shell.gschema.xml.in | 9 +++++++++
js/ui/status/powerProfiles.js | 11 +++++++++--
2 files changed, 18 insertions(+), 2 deletions(-)
---
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
index d3f3c702d2..c56a3399eb 100644
--- a/data/org.gnome.shell.gschema.xml.in
+++ b/data/org.gnome.shell.gschema.xml.in
@@ -94,6 +94,15 @@
adapter is ever seen not to have devices associated to it.
</description>
</key>
+ <key name="last-selected-power-profile" type="s">
+ <default>"power-saver"</default>
+ <summary>The last selected non-default power profile</summary>
+ <description>
+ Some systems support more than two power profiles. In order to still support
+ toggling between two profiles, this key records the last selected non-default
+ profile.
+ </description>
+ </key>
<key name="welcome-dialog-last-shown-version" type="s">
<default>''</default>
<summary>The last version the “Welcome to GNOME” dialog was shown for</summary>
diff --git a/js/ui/status/powerProfiles.js b/js/ui/status/powerProfiles.js
index 9878abfaca..f9a97a64fc 100644
--- a/js/ui/status/powerProfiles.js
+++ b/js/ui/status/powerProfiles.js
@@ -32,6 +32,8 @@ const PROFILE_PARAMS = {
},
};
+const LAST_PROFILE_KEY = 'last-selected-power-profile';
+
var Indicator = GObject.registerClass(
class Indicator extends PanelMenu.SystemIndicator {
_init() {
@@ -101,14 +103,19 @@ class Indicator extends PanelMenu.SystemIndicator {
if (!this._item.visible)
return;
+ const {ActiveProfile: activeProfile} = this._proxy;
+
for (const [profile, item] of this._profileItems) {
- item.setOrnament(profile === this._proxy.ActiveProfile
+ item.setOrnament(profile === activeProfile
? PopupMenu.Ornament.CHECK
: PopupMenu.Ornament.NONE);
}
- const {label, iconName} = PROFILE_PARAMS[this._proxy.ActiveProfile];
+ const {label, iconName} = PROFILE_PARAMS[activeProfile];
this._item.label.text = label;
this._item.icon.icon_name = iconName;
+
+ if (activeProfile !== 'balanced')
+ global.settings.set_string(LAST_PROFILE_KEY, activeProfile);
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]