feat(sway): theme the ReGreet greeter to match (Catppuccin Mocha)
Factor the Catppuccin Mocha palette into lyrathorpe/catppuccin-mocha.nix so the desktop (home/sway.nix) and the system greeter (swaywm.nix) share one source of truth, then theme ReGreet from it: GTK CSS (libadwaita named colours + plain node selectors for window/entry/button/combobox) plus Noto Sans to match the bar and notifications. Verified the rendered /etc/greetd/regreet.css and regreet.toml (font_name = "Noto Sans 16"), and that foot still resolves its colours through the shared import. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
|
||||
let
|
||||
cfg = config.features.swayDesktop;
|
||||
# Catppuccin Mocha (shared with the Sway desktop, see lyrathorpe/home/sway.nix).
|
||||
ctp = import ./catppuccin-mocha.nix;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
@@ -51,6 +53,66 @@ in
|
||||
# services.displayManager.sessionPackages. Hosts that turn off
|
||||
# features.swayDesktop (e.g. EDaaS) keep plain TTY login.
|
||||
programs.regreet.enable = true;
|
||||
# Theme the greeter to match the Sway desktop (Catppuccin Mocha). ReGreet is
|
||||
# GTK; recolour via CSS (covering both libadwaita named colours and plain
|
||||
# GTK node selectors) and use the same Noto Sans as the bar/notifications.
|
||||
programs.regreet.font = {
|
||||
name = "Noto Sans";
|
||||
package = pkgs.noto-fonts;
|
||||
size = 16;
|
||||
};
|
||||
programs.regreet.extraCss = ''
|
||||
@define-color window_bg_color #${ctp.base};
|
||||
@define-color window_fg_color #${ctp.text};
|
||||
@define-color view_bg_color #${ctp.mantle};
|
||||
@define-color view_fg_color #${ctp.text};
|
||||
@define-color card_bg_color #${ctp.surface0};
|
||||
@define-color card_fg_color #${ctp.text};
|
||||
@define-color accent_bg_color #${ctp.blue};
|
||||
@define-color accent_fg_color #${ctp.base};
|
||||
@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};
|
||||
color: #${ctp.text};
|
||||
}
|
||||
|
||||
label {
|
||||
color: #${ctp.text};
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: #${ctp.surface0};
|
||||
color: #${ctp.text};
|
||||
border: 1px solid #${ctp.surface1};
|
||||
}
|
||||
|
||||
entry:focus-within {
|
||||
border-color: #${ctp.blue};
|
||||
}
|
||||
|
||||
button,
|
||||
combobox button {
|
||||
background-color: #${ctp.surface0};
|
||||
color: #${ctp.text};
|
||||
border: 1px solid #${ctp.surface1};
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #${ctp.surface1};
|
||||
}
|
||||
|
||||
button:active,
|
||||
button:checked {
|
||||
background-color: #${ctp.blue};
|
||||
color: #${ctp.base};
|
||||
}
|
||||
'';
|
||||
# cage reads the XKB_* environment at startup, so force the greeter onto the
|
||||
# same Dvorak layout as the Sway session (home/sway.nix) -- otherwise the
|
||||
# password field would be QWERTY. Dvorak is the "us" layout's variant, NOT a
|
||||
|
||||
Reference in New Issue
Block a user