aboutsummaryrefslogtreecommitdiffstats
path: root/SPEC.md
diff options
context:
space:
mode:
Diffstat (limited to 'SPEC.md')
-rw-r--r--SPEC.md56
1 files changed, 31 insertions, 25 deletions
diff --git a/SPEC.md b/SPEC.md
index 7d151d1..54e6d62 100644
--- a/SPEC.md
+++ b/SPEC.md
@@ -23,11 +23,11 @@ pointed at DP-3.
## Layout
- DP-3 [📅 Wed 15/09] [🕑 14:32] [●] [S] [●] [✉ 9] [🔊] [tray] [⏻] [🇮🇹]
- date time vm launcher priv mail vol tray present lang
+ DP-3 [📅 Wed 15/09] [🕑 14:32] [●] [●] [✉ 9] [🔊] [tray] [⏻] [🇮🇹]
+ date time vm priv mail vol tray present lang
- DP-1 [1..8] [ open windows ]
- workspaces taskbar
+ DP-1 [1..8] [S] [ open windows ]
+ workspaces launcher taskbar
DP-3 is rotated, so a bar there is only 1080px wide. One bar holding every
module was too crowded at that width, so status stays on DP-3 alone and the
@@ -47,7 +47,7 @@ transparent gaps, so the bar reads as groups rather than a continuous strip.
| Position | Module | Icon source | Notes |
| --- | --- | --- | --- |
-| left | `image#launcher` | `slackware.svg`, shipped here | Accent background, the one always-coloured pill. Opens the quickshell drawer. An `image` module: a `custom` one draws nothing when its format is empty, and the format has to be empty because the mark is an icon. |
+| DP-1 centre | `image#launcher` | `slackware.svg`, shipped here | Accent background, the one always-coloured pill. Opens the quickshell drawer. An `image` module: a `custom` one draws nothing when its format is empty, and the format has to be empty because the mark is an icon. |
| left | `clock#date` | `x-office-calendar` | Icon then text. Calendar tooltip kept. |
| left | `clock#time` | `clock` | Icon then text. |
| left | `hyprland/workspaces` | eight themed icons, via CSS | See below. |
@@ -57,7 +57,7 @@ transparent gaps, so the bar reads as groups rather than a continuous strip.
| right | `tray` | application-provided | |
| right | `custom/mail` | CSS, plus the count as text | Unread mail, the same notmuch watcher the stock bar ran. The envelope is a CSS background; the count stays text, because it is content rather than decoration, exactly like the clock. |
| right | `custom/presentation` | CSS, keyed on the module's class | Presentation mode, the same `statusctl`-backed module the stock bar ran. It already emits an empty text and a state class, so the icon is chosen in CSS and the glyphs are simply dropped. |
-| right | `image#lang` | `flag-it.svg` / `flag-gb.svg`, shipped here | An `image` module: `hyprland/language` styles as `#language` only, with no per-language class, so a flag cannot be selected in CSS. |
+| right | `image#lang` | `flag-it.svg` / `burger.svg`, shipped here | An `image` module: `hyprland/language` styles as `#language` only, with no per-language class, so the image cannot be selected in CSS. English gets the hamburger the stock bar showed, not a flag. |
Dropped from the current bar: `custom/breaktimer`, `custom/mail`,
`custom/privacy_dots` stays only if you want it on this bar too (it is
@@ -152,7 +152,7 @@ Modular, one file per module, mirroring the current setup:
icons/
slackware.svg carries @ACCENT@, substituted on install
flag-it.svg
- flag-gb.svg
+ burger.svg
bin/
wb-icon state to icon path, for the `image` modules
vms_dots.sh moved here from ~/bin, symlinked back
@@ -169,24 +169,30 @@ module file explicitly. That is a waybar limitation, not a choice.
This repo is a **consumer** of udt: it holds the bar, udt holds the colours.
`styles/theme.css` is generated by `udt-palette` and gitignored, exactly like
-every other generated file in that repo. Generating it needs two changes on
-the udt side:
-
-**A new `[waybar]` role block.** The current one names `temperature`,
-`memory`, `cpu`, `backlight` and `battery`, none of which exist on this bar.
-The new roles are `launcher`, `workspaces`, `vmdots`, `taskbar`, `volume`,
-`tray`, `present`, `lang`, `date`, `time`, plus the existing `main_*`,
-`hover_*` and `outline`.
-
-**Added to all nine `roles-*.conf`.** `udt-palette --selftest` enforces that
-every scheme defines the same role set, so a role added to one file and not
-the rest fails the check. That is the check doing its job.
-
-Dot colours come from the existing `[state]` roles: `success` for a running
-VM, `warning` for paused, `critical` for crashed, `info` for saved, and
-`fg_faint` for shut off. Both dot scripts currently hardcode `#30D158`,
-`#FFD60A`, `#FF9F0A`, `#9B32FA` and `#6E6E73`; they will read a generated
-colour block instead.
+every other generated file in that repo. udt's `install.sh` writes it straight
+into `~/.config/waybar-udt/styles/theme.css` under a fixed name this bar
+imports, so switching scheme rewrites the file the running bar already reads.
+
+**The `[waybar]` role block has no per-module colours.** This was planned as a
+rename, and turned out to be a deletion. The stock bar 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`. This bar draws every pill on `@main-bg`, and its
+stylesheets reference seven names in total:
+
+ @accent @main-bg @main-fg @hover-bg @hover-fg @outline @critical
+
+So all eleven module roles had no consumer, and adding `launcher`, `mail` or
+`present` roles would have invented more of the same. They are gone from all
+nine `roles-*.conf` and from `gen_waybar`. Re-adding one means a stylesheet
+that actually references it.
+
+**Dot colours do not come from `[state]`.** `gen_waybar` never emitted
+`success` or `info`, so `install.sh` reads `green`, `teal`, `mauve`,
+`overlay0`, `warning` and `critical` back out of the generated stylesheet and
+writes `~/.config/waybar-udt/dots.colors` for the two scripts to source. They
+are bash and cannot read `@define-color`; both fall back to Macchiato values
+when that file is missing, so they still run standalone.
## Install