# Waybar The bar is [waybar-theme-udt](../../../waybar-theme-udt), which lives in its own repository and its own config directory, `~/.config/waybar-udt/`. This project supplies only its colours. `theme.css` is generated here and copied there by `install.sh`, under a fixed name that the bar's stylesheet imports, so switching scheme rewrites the file the running bar already reads. There is no import to repoint and no per-scheme filename. ## What the bar asks for Seven names, and nothing else: @accent @main-bg @main-fg @hover-bg @hover-fg @outline @critical plus `@warning`, and the Catppuccin-named compat rows, which the bar's dot scripts read indirectly: `waybar-theme-udt/install.sh` parses `green`, `teal`, `mauve`, `overlay0`, `warning` and `critical` back out of the generated file to write a shell fragment, because those scripts are bash and cannot read `@define-color`. **There are no per-module colours.** The stock bar alternated module backgrounds so it read as stripes, and carried a role per module to do it: `workspaces`, `temperature`, `memory`, `cpu`, `time`, `date`, `tray`, `volume`, `backlight`, `battery`, plus `charging`. The current bar draws every pill on `@main-bg`, so all eleven had no consumer left and were removed from every `roles-*.conf` and from `gen_waybar`. Re-adding one means a stylesheet that actually references it. ## The stock config is left alone `~/.config/waybar/` is still on disk and nothing launches it: hyprland's autostart runs the new bar instead. Its stylesheets still reference the per-module names above, which this generator no longer emits, so `install.sh` deliberately does **not** write a theme into it. Writing one would leave it referencing colours that do not exist, which is worse than leaving it exactly as it was last known to work. ## Reloading `killall -SIGUSR2 waybar` applies a CSS change, and the bar sets `reload_style_on_change`, so rewriting `theme.css` reaches it on its own. A change to `config.jsonc` needs a restart rather than a signal.