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) <noreply@anthropic.com>
This commit is contained in:
Emma Thorpe
2026-06-09 19:49:13 +01:00
parent 00d314411d
commit 4858de0a07
+18 -3
View File
@@ -62,6 +62,21 @@ in
size = 16; size = 16;
}; };
programs.regreet.extraCss = '' 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_bg_color #${ctp.base};
@define-color window_fg_color #${ctp.text}; @define-color window_fg_color #${ctp.text};
@define-color view_bg_color #${ctp.mantle}; @define-color view_bg_color #${ctp.mantle};
@@ -73,9 +88,6 @@ in
@define-color accent_color #${ctp.blue}; @define-color accent_color #${ctp.blue};
@define-color destructive_bg_color #${ctp.red}; @define-color destructive_bg_color #${ctp.red};
@define-color destructive_fg_color #${ctp.base}; @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 { window {
background-color: #${ctp.base}; background-color: #${ctp.base};
@@ -125,6 +137,9 @@ in
greeter = pkgs.writeShellScript "regreet-cage" '' greeter = pkgs.writeShellScript "regreet-cage" ''
export XKB_DEFAULT_LAYOUT=us export XKB_DEFAULT_LAYOUT=us
export XKB_DEFAULT_VARIANT=dvorak 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} exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} -s -- ${lib.getExe config.programs.regreet.package}
''; '';
in in