Theme Application
cells/theme/default.nix translates config.my.theme into Home Manager desktop configuration.
Up: theme system Down: Hyprland leaf | Waybar leaf
What this leaf does
It attaches to desktop.hmModules and configures GTK, Qt/Kvantum, pointer cursor, icons, fonts, xsettingsd, and browser/toolkit flags.
let
theme = config.my.theme;
c = theme.colors;
accentHex = c.${theme.accent};
in {
gtk.theme = {
name = theme.gtk.theme;
package = pkgs.${theme.gtk.package};
};
}It also generates GTK CSS from the palette.
@define-color accent_color #${accentHex};
@define-color window_bg_color #${c.base};
@define-color window_fg_color #${c.text};Why it exists
Theme data should be pure data. Application-specific files should be generated at the edge. This leaf is that edge for GTK, Qt, and desktop integration.