aboutsummaryrefslogtreecommitdiffstats
path: root/templates/waybar/README.md
blob: a69f2280bf142720bef23c521b60879254a5cc64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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, but `install.sh` does not copy it there itself:
it calls the bar's own `install.sh`, with `UDT_PALETTE_DONE=1` so that script
skips regenerating the palette it has just been handed.

That is because the palette reaches the bar as **three** generated files, not
one: `styles/theme.css`, `dots.colors` for the two dot scripts, which are bash
and cannot read `@define-color`, and two tints of the Slackware mark, which
has to contrast with the accent pill at rest and the dark pill on hover.
Copying only the stylesheet recoloured every pill and left the dots and the
mark on the previous scheme's colours. Generating them here instead would mean
two writers for the same files, drifting apart the moment either is edited.

The call is never fatal: a failure in the bar's install warns and leaves the
bar on its old colours rather than stopping kitty, Kvantum and Sublime from
being themed. Same reasoning as `udt-appthemes`.

## 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.