From 4858de0a073edbd7d9996305f28f72db1c2949e1 Mon Sep 17 00:00:00 2001 From: Emma Thorpe Date: Tue, 9 Jun 2026 19:49:13 +0100 Subject: [PATCH] fix(sway): force a dark base for the ReGreet greeter theme ReGreet is plain GTK4 (no libadwaita in its closure), so it defaulted to light Adwaita and my libadwaita-named colour overrides (window_bg_color, accent_bg_color, ...) were inert -- a light theme with stray accents. Force the dark Adwaita variant via GTK_THEME=Adwaita:dark in the greeter wrapper, and override the GTK4 legacy colour names (theme_bg_color, theme_fg_color, theme_selected_bg_color, borders, ...) that plain GTK4 actually references. The libadwaita names stay as harmless forward-compat. Co-Authored-By: Claude Opus 4.8 (1M context) --- lyrathorpe/swaywm.nix | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lyrathorpe/swaywm.nix b/lyrathorpe/swaywm.nix index 84e9bf4..3d9fcf2 100644 --- a/lyrathorpe/swaywm.nix +++ b/lyrathorpe/swaywm.nix @@ -62,6 +62,21 @@ in size = 16; }; programs.regreet.extraCss = '' + /* GTK4 Adwaita legacy names (what plain GTK4 actually references). */ + @define-color theme_bg_color #${ctp.base}; + @define-color theme_fg_color #${ctp.text}; + @define-color theme_base_color #${ctp.mantle}; + @define-color theme_text_color #${ctp.text}; + @define-color theme_selected_bg_color #${ctp.blue}; + @define-color theme_selected_fg_color #${ctp.base}; + @define-color insensitive_bg_color #${ctp.mantle}; + @define-color insensitive_fg_color #${ctp.overlay0}; + @define-color borders #${ctp.surface1}; + @define-color warning_color #${ctp.peach}; + @define-color error_color #${ctp.red}; + @define-color success_color #${ctp.green}; + + /* libadwaita names (inert on plain GTK4, kept for forward-compat). */ @define-color window_bg_color #${ctp.base}; @define-color window_fg_color #${ctp.text}; @define-color view_bg_color #${ctp.mantle}; @@ -73,9 +88,6 @@ in @define-color accent_color #${ctp.blue}; @define-color destructive_bg_color #${ctp.red}; @define-color destructive_fg_color #${ctp.base}; - @define-color error_color #${ctp.red}; - @define-color warning_color #${ctp.peach}; - @define-color success_color #${ctp.green}; window { background-color: #${ctp.base}; @@ -125,6 +137,9 @@ in greeter = pkgs.writeShellScript "regreet-cage" '' export XKB_DEFAULT_LAYOUT=us export XKB_DEFAULT_VARIANT=dvorak + # ReGreet is plain GTK4 (no libadwaita); force the dark Adwaita variant + # so the extraCss accents sit on a dark base instead of light Adwaita. + export GTK_THEME=Adwaita:dark exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} -s -- ${lib.getExe config.programs.regreet.package} ''; in