aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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.