aboutsummaryrefslogtreecommitdiffstats
path: root/palette
AgeCommit message (Collapse)AuthorFilesLines
8 hoursfix(accent): make udt-accent scheme-independentDanilo M.1-1/+1
Two things still assumed Catppuccin. The QML header hardcoded "Catppuccin Macchiato" regardless of the scheme in use, and the selftest asserted that an orange input snaps to a colour named "peach", which is true only under Catppuccin: Tokyo Night calls that hue "orange" and the test failed the moment the scheme changed. The header now names the scheme it generated from. The snapping assertions test the property instead of the spelling: an input must land within 0.6 rad of its own hue, and a border neighbour must sit nearer the accent than its opposite. Both hold under any palette. Verified: --selftest passes under macchiato, tokyo-night, nord and dracula. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
8 hoursfeat(palette): generate every themed config from one schemeDanilo M.9-0/+583
Colours were written down five times: rofi's palette.rasi, the waybar theme, the kitty theme, the conky and dunst templates, and a MACCHIATO dict inside udt-accent. Changing scheme meant finding all five, and they had already drifted: the active waybar theme was Macchiato while theme.css next to it was Mocha, and nothing imported the latter. Now a scheme is two files. palette/<scheme>.conf holds the colours under the scheme's own names, and palette/roles-<scheme>.conf says what each is for. palette/roles.conf is one `scheme =` line selecting the pair. bin/udt-palette renders that into each consumer's syntax and install.sh runs it first. The role map is per-scheme rather than shared because the palettes are genuinely different shapes: Nord has no `base`, Dracula no `surface0`, and forcing Catppuccin's names onto them would have meant either renaming their colours or inventing values. A role names a palette colour with two optional modifiers, `name/75` for alpha and `name*50` for brightness. The second exists because GTK's shade() has no palette name to point at. Ships macchiato, tokyo-night, nord and dracula. --selftest resolves every role in every scheme and asserts they define the same set, so a scheme that cannot satisfy a consumer fails at install rather than when someone switches to it. Verified against the live configs: all 46 waybar colours resolve identically to the previously active theme including its alpha() and shade() derivations, the kitty theme is colour-for-colour identical, and the rofi palette has the same 26 values. Generated files are gitignored; switching scheme and switching back reproduces the originals. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe