From 7245a69088b4741752ded5cae3e85203361d1538 Mon Sep 17 00:00:00 2001 From: rope Date: Wed, 21 Oct 2026 19:11:48 +0100 Subject: [PATCH] theming: set gtk-theme via dconf Co-Authored-By: Claude Opus 5.5 --- settings/theming.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/settings/theming.nix b/settings/theming.nix index e49ecd9..a56bf40 100644 --- a/settings/theming.nix +++ b/settings/theming.nix @@ -605,12 +605,19 @@ let # one event, and needed a Ctrl+R sendshortcut here — which dropped calls.) # Point GTK3 at this wallpaper's theme. Every wallpaper has its own theme - # name, so this is always a real change: gsettings emits, the portal + # name, so this is always a real change: dconf emits, the portal # forwards it, and running GTK3 apps reload the named theme — no restart, # no away-and-back dance. + # + # dconf, not gsettings: gsettings refuses without the compiled schemas, + # and nothing here puts them on XDG_DATA_DIRS — not quickshell's env, not + # the user manager's — so every `gsettings set` answered "No schemas + # installed" and GTK3 sat on whichever theme last landed. dconf writes the + # same key straight into the store the portal watches. The value is a + # GVariant, hence the inner quotes. gtktheme=$(cat "$theme/gtk-theme-name") - ${pkgs.glib.bin}/bin/gsettings set org.gnome.desktop.interface gtk-theme "$gtktheme" \ - || echo "gsettings set gtk-theme $gtktheme failed" + ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/interface/gtk-theme "'$gtktheme'" \ + || echo "dconf write gtk-theme $gtktheme failed" ''; in {