From 1cc61b9e76f79dbfc9600938ec20fe1cddeedf65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Thu, 10 Sep 2026 16:18:15 -0700 Subject: [PATCH] AccentColorManager: add a gsettings key --- .../io.elementary.settings-daemon.gschema.xml | 23 +++++++++++++++++++ src/Backends/AccentColorManager.vala | 12 ++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/data/io.elementary.settings-daemon.gschema.xml b/data/io.elementary.settings-daemon.gschema.xml index 4323e977..fb1c44ae 100644 --- a/data/io.elementary.settings-daemon.gschema.xml +++ b/data/io.elementary.settings-daemon.gschema.xml @@ -73,6 +73,29 @@ + + + + + + + + + + + + + + + + + + 'automatic' + Accent Color + The preferred accent color for the user interface. Valid values are "automatic", "red", "orange", "yellow", "green", "mint", "blue", "purple", "pink", "brown", "gray", "latte". + + + diff --git a/src/Backends/AccentColorManager.vala b/src/Backends/AccentColorManager.vala index a6c000f3..dbe8b6a0 100644 --- a/src/Backends/AccentColorManager.vala +++ b/src/Backends/AccentColorManager.vala @@ -9,6 +9,7 @@ public class SettingsDaemon.Backends.AccentColorManager : Object { public unowned AccountsService accounts_service { get; construct; } private Settings background_settings; + private Settings gnome_interface_settings; private Settings interface_settings; private enum BackgroundStyle { @@ -54,7 +55,8 @@ public class SettingsDaemon.Backends.AccentColorManager : Object { construct { background_settings = new Settings ("org.gnome.desktop.background"); - interface_settings = new Settings ("org.gnome.desktop.interface"); + gnome_interface_settings = new Settings ("org.gnome.desktop.interface"); + interface_settings = new Settings ("io.elementary.settings-daemon.interface"); update_accent_color (); if (pantheon_accounts_service.prefers_accent_color == 0) { @@ -80,6 +82,10 @@ public class SettingsDaemon.Backends.AccentColorManager : Object { background_settings.changed["primary-color"].disconnect (update_accent_color); } }); + + interface_settings.changed["accent-color"].connect (() => { + pantheon_accounts_service.prefers_accent_color = interface_settings.get_enum ("accent-color"); + }); } private void update_accent_color () { @@ -90,13 +96,15 @@ public class SettingsDaemon.Backends.AccentColorManager : Object { return; } + interface_settings.set_enum ("accent-color", prefers_accent_color); + if (prefers_accent_color == 0) { new_theme = get_dynamic_accent_color_theme_name (); } else { new_theme = themes[prefers_accent_color - 1]; } - interface_settings.set_string ("gtk-theme", new_theme.stylesheet); + gnome_interface_settings.set_string ("gtk-theme", new_theme.stylesheet); debug ("New stylesheet: %s", new_theme.stylesheet); accounts_service.accent_color = new_theme.index;