aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 17:08:37 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 17:08:37 +0200
commit1db739eaf7c2155cee80084183a0a0bbe590d3cd (patch)
tree163be1b0a555ff5a990cea40ccf04c897fbde6a2
parenta9f3e65355b64577044467ca70ca16d00fba016b (diff)
downloadunified-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.md11
-rwxr-xr-xbin/udt-palette19
-rwxr-xr-xinstall.sh20
-rw-r--r--palette/roles-dracula.conf12
-rw-r--r--palette/roles-frappe.conf14
-rw-r--r--palette/roles-macchiato.conf14
-rw-r--r--palette/roles-material-darker.conf12
-rw-r--r--palette/roles-material-ocean.conf12
-rw-r--r--palette/roles-material-palenight.conf12
-rw-r--r--palette/roles-mocha.conf14
-rw-r--r--palette/roles-nord.conf12
-rw-r--r--palette/roles-tokyo-night.conf12
-rw-r--r--templates/waybar/README.md69
13 files changed, 72 insertions, 161 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 0ecae09..88a0123 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -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),
"",
diff --git a/install.sh b/install.sh
index cdcdc99..7bc93c5 100755
--- a/install.sh
+++ b/install.sh
@@ -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.