Theme Selection
cells/theme.nix stores named theme data and assigns the selected object to config.my.theme.
Up: theme system Down: theme application
What it configures
The file defines a themes attribute set and selects one by my.profile.theme.
let
themes = {
catppuccin-mocha = {
slug = "catppuccin-mocha";
variant = "dark";
accent = "mauve";
};
};
in {
config.my.theme =
themes.${config.my.profile.theme}
or (throw "Unknown theme: ${config.my.profile.theme}");
}
Why it is separate
The selected theme becomes a typed object available to every imported cell. Application leaves do not need to know all available themes. They only consume config.my.theme.
What to copy
Keep theme data complete enough that consumers do not invent missing values. If Waybar needs a variation name, put that in the theme object.