Theme System

The theme system separates theme data from theme application. cells/theme.nix selects a typed theme, and cells/theme/default.nix applies it to the desktop branch.

Up: cells

Down: theme selection | theme application | theme options

What this subtree does

The theme system makes visual configuration a data flow.

  • my.profile.theme selects a theme by slug.
  • config.my.theme becomes the selected theme object.
  • Desktop leaves consume config.my.theme to render application-specific config.

Why it is designed this way

Theme configuration often becomes duplicated across apps. This setup creates one palette and several adapters.

That means changing from a dark palette to a light palette is a profile change, not a manual edit across GTK, Qt, Hyprland, Waybar, prompt, and terminal files.