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.