Architecture decisions
Why varna is built the way it is: each significant decision as a short record (context, the decision, its consequences), in the ADR format. A decision is never edited away: a later one supersedes it. Sources: docs/adr.
Record architecture decisions
Decisions about how varna is built (its dependencies, its boundaries, the trade-offs it accepts) were made in conversations and commit messages, where nobody finds them later. A co…
Tools include a generated file; varna never rewrites their configs
A theme switcher can either rewrite each tool's config (search and replace colour values), own each tool's config entirely, or have each config include a small file of colours. Rew…
Every theme fills the same 26 colours, plus roles
Templates need to name colours. If each theme used its own names (Rosé Pine's "love" and "iris", Nord's "frost"), every template would need a branch per theme. Tools also need mean…
Reload running tools, but never from a throwaway HOME
A theme switch should show at once, without restarting anything: sway reloads its config, waybar its style on SIGUSR2, kitty its config on SIGUSR1, tmux re-sources a file per serve…
Standard library only
varna runs at login (varna ensure, before waybar and mako start) and from keybindings and panels; a missing dependency there means a desktop without a bar or notifications.