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 this leaf does
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 exists
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.