diff options
| -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. |
