diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-15 17:08:37 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-15 17:08:37 +0200 |
| commit | 1db739eaf7c2155cee80084183a0a0bbe590d3cd (patch) | |
| tree | 163be1b0a555ff5a990cea40ccf04c897fbde6a2 | |
| parent | a9f3e65355b64577044467ca70ca16d00fba016b (diff) | |
| download | unified-desktop-theme-1db739eaf7c2155cee80084183a0a0bbe590d3cd.tar.gz unified-desktop-theme-1db739eaf7c2155cee80084183a0a0bbe590d3cd.zip | |
fix(waybar): drop the per-module colours, and aim at the bar that runs
The bar these roles existed for is gone. The stock one alternated module
backgrounds so it read as stripes, and carried a role for each: workspaces,
temperature, memory, cpu, time, date, tray, volume, backlight, battery, plus
charging. waybar-theme-udt draws every pill on main_bg, and its stylesheets
reference seven names in total, none of them a module. So all eleven had no
consumer left in any of the nine schemes.
They are deleted rather than renamed. Renaming them after the new bar's
modules would have invented consumers that do not exist: nothing reads a
"mail" or "launcher" colour, because the pills are deliberately uniform.
Re-adding one means a stylesheet that actually references it.
install.sh was still writing the theme into ~/.config/waybar/, which hyprland
no longer launches, so switching scheme recoloured a bar nobody sees while the
running one kept its old palette. It writes to ~/.config/waybar-udt/ now,
under the fixed name that bar imports, so there is no import to repoint.
The stock directory is left exactly as it was, and deliberately gets no new
theme: its stylesheets still ask for the per-module names, so writing one
there would leave it referencing colours that no longer exist.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| -rw-r--r-- | AGENTS.md | 11 | ||||
| -rwxr-xr-x | bin/udt-palette | 19 | ||||
| -rwxr-xr-x | install.sh | 20 | ||||
| -rw-r--r-- | palette/roles-dracula.conf | 12 | ||||
| -rw-r--r-- | palette/roles-frappe.conf | 14 | ||||
| -rw-r--r-- | palette/roles-macchiato.conf | 14 | ||||
| -rw-r--r-- | palette/roles-material-darker.conf | 12 | ||||
| -rw-r--r-- | palette/roles-material-ocean.conf | 12 | ||||
| -rw-r--r-- | palette/roles-material-palenight.conf | 12 | ||||
| -rw-r--r-- | palette/roles-mocha.conf | 14 | ||||
| -rw-r--r-- | palette/roles-nord.conf | 12 | ||||
| -rw-r--r-- | palette/roles-tokyo-night.conf | 12 | ||||
| -rw-r--r-- | templates/waybar/README.md | 69 |
13 files changed, 72 insertions, 161 deletions
@@ -197,10 +197,13 @@ them by exit code: rofi exits non-zero for ordinary reasons such as Escape. - **`wallp` starts `swaybg` in the background**, which inherits the shell's stdout, so a pipe or command substitution appears to hang after `wallp` has already finished. Redirect its output when calling it from a script. -- **waybar's own CLAUDE.md documents a stale CSS load order.** The - `modules-*.css` and `states.css` files it names are not imported by anything; - `style.css` pulls in `styles/main.css`. One of the dead files holds a - `font-family` that looks authoritative but does nothing. +- **The bar is not in `~/.config/waybar/`.** It is `waybar-theme-udt`, a + separate repository with its own config directory, `~/.config/waybar-udt/`, + and hyprland's autostart launches that. The stock directory is still on disk + and nothing reads it, so `install.sh` deliberately writes no theme into it: + its stylesheets reference the per-module role names this generator no longer + emits, and a new theme there would leave it pointing at colours that do not + exist. See `templates/waybar/README.md`. ## Editing rules diff --git a/bin/udt-palette b/bin/udt-palette index ceed64d..3fcb355 100755 --- a/bin/udt-palette +++ b/bin/udt-palette @@ -155,9 +155,15 @@ def gen_rofi(res, scheme, palette): def gen_waybar(res, scheme, palette): """waybar: one file holding the palette and the role layer. - Both halves together because style.css imports a single themes/<scheme>.css, - and the stylesheets reference names from each: @lavender and @surface1 by - Catppuccin name, @cpu and @hover-bg by role. + Both halves together because the stylesheet imports a single theme.css and + references names from each: @lavender and @surface1 by Catppuccin name, + @main-bg and @hover-bg by role. + + There are no per-module colours. The old bar alternated module backgrounds + so it read as stripes, and carried a role per module to do it. The current + one draws every pill on @main-bg, which left those ten roles with no + consumer: emitting them anyway would be ten colours nothing reads, and the + next reader would reasonably assume something did. The Catppuccin-named half is emitted from roles, exactly as gen_rofi does and for the same reason: styles/main.css and styles/global.css are edited @@ -183,9 +189,7 @@ def gen_waybar(res, scheme, palette): return f"@define-color {(css_name or role.replace('_', '-')):<12}{rgba(c)};" ui = ["main_br", "main_bg", "main_fg", "hover_bg", "hover_fg", "outline"] - modules = ["workspaces", "temperature", "memory", "cpu", "time", "date", - "tray", "volume", "backlight", "battery"] - states = ["warning", "critical", "charging"] + states = ["warning", "critical"] return "\n".join([ f"/* {BANNER.format(scheme=scheme)} */", @@ -201,9 +205,6 @@ def gen_waybar(res, scheme, palette): f"@define-color accent {rgba(res['accent'])};", *(emit(r) for r in ui), "", - "/* module colors */", - *(emit(r) for r in modules), - "", "/* state colors */", *(emit(r) for r in states), "", @@ -48,14 +48,18 @@ ln -sfn "$repo/bin/udt-palette" "$HOME/bin/udt-palette" # with settings that are none of this repo's business. scheme="$(sed -n 's/^scheme *= *//p' "$selector")" -# waybar reads whichever themes/<name>.css style.css imports, so write the file -# under the scheme's own name and repoint the import. The older per-flavour -# files in themes/ are left alone; they are simply no longer imported. -install -Dm644 "$repo/templates/waybar/theme.css" \ - "$HOME/.config/waybar/themes/$scheme.css" -if [ -f "$HOME/.config/waybar/style.css" ]; then - sed -i "s|@import \"themes/.*\.css\";|@import \"themes/$scheme.css\";|" \ - "$HOME/.config/waybar/style.css" +# waybar. The bar is waybar-theme-udt, which keeps its own config directory and +# imports styles/theme.css under a fixed name, so this is a copy to one path +# with no import to repoint: switching scheme rewrites the file the running bar +# already reads. +# +# The stock ~/.config/waybar/ is deliberately left alone. Nothing launches it +# any more, and its stylesheets still reference the per-module role names this +# generator no longer emits, so writing a new theme in there would leave it +# referencing colours that do not exist rather than simply sitting unused. +if [ -d "$HOME/.config/waybar-udt" ]; then + install -Dm644 "$repo/templates/waybar/theme.css" \ + "$HOME/.config/waybar-udt/styles/theme.css" fi install -Dm644 "$repo/templates/terminal/kitty-theme.conf" \ diff --git a/palette/roles-dracula.conf b/palette/roles-dracula.conf index 8c54813..2ffa1b7 100644 --- a/palette/roles-dracula.conf +++ b/palette/roles-dracula.conf @@ -34,18 +34,6 @@ hover_bg = background hover_fg = foreground/75 outline = surface_low*50 -workspaces = surface_low -temperature = surface_low -memory = background -cpu = surface_mid -time = surface_mid -date = background -tray = surface_low -volume = surface_low -backlight = background -battery = surface_mid -charging = green - [conky] heading = purple label = comment diff --git a/palette/roles-frappe.conf b/palette/roles-frappe.conf index bfe5ac2..20d1092 100644 --- a/palette/roles-frappe.conf +++ b/palette/roles-frappe.conf @@ -40,20 +40,6 @@ hover_bg = base hover_fg = text/75 outline = crust*50 -# Per-module backgrounds. Alternating depths, not semantic: the bar reads as -# stripes, so neighbouring modules differ. -workspaces = mantle -temperature = mantle -memory = base -cpu = surface0 -time = surface0 -date = base -tray = mantle -volume = mantle -backlight = base -battery = surface0 -charging = green - [conky] # conky indexes colours by number. The names say what each number draws. heading = lavender diff --git a/palette/roles-macchiato.conf b/palette/roles-macchiato.conf index a7c11d7..9cecca9 100644 --- a/palette/roles-macchiato.conf +++ b/palette/roles-macchiato.conf @@ -40,20 +40,6 @@ hover_bg = base hover_fg = text/75 outline = crust*50 -# Per-module backgrounds. Alternating depths, not semantic: the bar reads as -# stripes, so neighbouring modules differ. -workspaces = mantle -temperature = mantle -memory = base -cpu = surface0 -time = surface0 -date = base -tray = mantle -volume = mantle -backlight = base -battery = surface0 -charging = green - [conky] # conky indexes colours by number. The names say what each number draws. heading = lavender diff --git a/palette/roles-material-darker.conf b/palette/roles-material-darker.conf index 152e179..3dc5c9e 100644 --- a/palette/roles-material-darker.conf +++ b/palette/roles-material-darker.conf @@ -34,18 +34,6 @@ hover_bg = background hover_fg = foreground/75 outline = deep*50 -workspaces = mid -temperature = mid -memory = background -cpu = surface -time = surface -date = background -tray = mid -volume = mid -backlight = background -battery = surface -charging = green - [conky] heading = cyan label = light diff --git a/palette/roles-material-ocean.conf b/palette/roles-material-ocean.conf index 8a657a9..44393ee 100644 --- a/palette/roles-material-ocean.conf +++ b/palette/roles-material-ocean.conf @@ -34,18 +34,6 @@ hover_bg = background hover_fg = foreground/75 outline = deep*50 -workspaces = mid -temperature = mid -memory = background -cpu = surface -time = surface -date = background -tray = mid -volume = mid -backlight = background -battery = surface -charging = green - [conky] heading = cyan label = light diff --git a/palette/roles-material-palenight.conf b/palette/roles-material-palenight.conf index 3e6a985..0aa2d66 100644 --- a/palette/roles-material-palenight.conf +++ b/palette/roles-material-palenight.conf @@ -34,18 +34,6 @@ hover_bg = background hover_fg = foreground/75 outline = deep*50 -workspaces = mid -temperature = mid -memory = background -cpu = surface -time = surface -date = background -tray = mid -volume = mid -backlight = background -battery = surface -charging = green - [conky] heading = cyan label = light diff --git a/palette/roles-mocha.conf b/palette/roles-mocha.conf index 318edce..4d4e434 100644 --- a/palette/roles-mocha.conf +++ b/palette/roles-mocha.conf @@ -40,20 +40,6 @@ hover_bg = base hover_fg = text/75 outline = crust*50 -# Per-module backgrounds. Alternating depths, not semantic: the bar reads as -# stripes, so neighbouring modules differ. -workspaces = mantle -temperature = mantle -memory = base -cpu = surface0 -time = surface0 -date = base -tray = mantle -volume = mantle -backlight = base -battery = surface0 -charging = green - [conky] # conky indexes colours by number. The names say what each number draws. heading = lavender diff --git a/palette/roles-nord.conf b/palette/roles-nord.conf index 29b2854..a6f5d3c 100644 --- a/palette/roles-nord.conf +++ b/palette/roles-nord.conf @@ -34,18 +34,6 @@ hover_bg = nord1 hover_fg = nord6/75 outline = nord0*50 -workspaces = nord1 -temperature = nord1 -memory = nord0 -cpu = nord2 -time = nord2 -date = nord0 -tray = nord1 -volume = nord1 -backlight = nord0 -battery = nord2 -charging = aurora_green - [conky] heading = frost_cyan label = nord4 diff --git a/palette/roles-tokyo-night.conf b/palette/roles-tokyo-night.conf index 984876b..c2a129f 100644 --- a/palette/roles-tokyo-night.conf +++ b/palette/roles-tokyo-night.conf @@ -33,18 +33,6 @@ hover_bg = bg hover_fg = fg/75 outline = bg_dark*50 -workspaces = bg_dark -temperature = bg_dark -memory = bg -cpu = bg_highlight -time = bg_highlight -date = bg -tray = bg_dark -volume = bg_dark -backlight = bg -battery = bg_highlight -charging = green - [conky] heading = blue label = fg_dark diff --git a/templates/waybar/README.md b/templates/waybar/README.md index 66b243a..19c220c 100644 --- a/templates/waybar/README.md +++ b/templates/waybar/README.md @@ -1,28 +1,45 @@ # Waybar -Waybar was already Catppuccin Macchiato before this project touched it, and its -palette file carries the same hex values as `rofi/udt/palette.rasi`. Its accent -was already `@lavender`, which is now the desktop-wide fallback, so the two -agree without changing either. - -The only change made here was the font: `styles/fonts.css` asked for -`Commit Mono Nerd Font`, a third family outside the Noto Sans / Inconsolata -pair. It now uses `Inconsolata Nerd Font Mono`. Monospace is deliberate for a -status bar: the content is dense, numeric and glyph-heavy, and proportional -text makes values jitter as they update. - -Every size in that file went up by 2px at the same time. Inconsolata is a -narrower face than Commit Mono, so matching the nominal size made the bar read -smaller; the bump restores the previous weight on screen. - -Waybar reloads CSS live, so `killall -SIGUSR2 waybar` is enough to apply a -change. - -## Note for whoever edits this next - -`~/.config/waybar/CLAUDE.md` documents a CSS load order ending in -`styles/modules-{center,left,right}.css` and `styles/states.css`. Those files -are no longer imported by anything: `style.css` pulls in `styles/main.css` -instead, which appears to have replaced them. They are still on disk. Editing -them has no effect, and one of them holds a stale `font-family` that looks -authoritative but is dead. +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. |
