diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-15 12:58:31 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-15 12:58:31 +0200 |
| commit | e996b6626c85f8cefb0f357d128091e350ee0ec0 (patch) | |
| tree | e74b93bb7a7c0451f7e247d541b2b428b096df19 /README.md | |
| download | waybar-theme-udt-e996b6626c85f8cefb0f357d128091e350ee0ec0.tar.gz waybar-theme-udt-e996b6626c85f8cefb0f357d128091e350ee0ec0.zip | |
feat: a waybar bar for DP-3, themed by udt and drawn with icons
Builds the bar from scratch as a consumer of unified-desktop-theme: the
palette comes from there, the layout and the modules live here.
No font glyphs anywhere. Every symbol is a real icon from the icon theme
GTK already uses, which needs all three of waybar's mechanisms because no
single one covers everything: the icon-theme config key for the taskbar
and tray, `image` modules driving wb-icon/wb-lang for volume, microphone,
presentation mode and the keyboard flag, and CSS background-image for the
workspaces, the clock pair and the launcher.
The workspace icons have to be CSS because format-icons takes text rather
than paths, and faking the strip with eight custom modules would have cost
click-to-switch and the active and urgent states. The language flag goes
the other way: hyprland/language styles as #language with no per-language
class, so the flag could not be selected, and it is an image module.
Icons keep their own colours: 2466 of the theme's 5169 panel icons carry a
hardcoded gradient and are not recolourable, which is the intended look
here. The two icons the theme lacks are shipped instead, and the monochrome
Slackware mark takes the udt accent at install time.
vms_dots.sh and privacy_dots.sh lived only in ~/bin, in no repository at
all. They are versioned here now, symlinked back, and their hardcoded
state colours read from the palette.
Installs alongside the existing bar rather than over it, so DP-1 keeps
working while this one is tried on DP-3.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a37bd5 --- /dev/null +++ b/README.md @@ -0,0 +1,135 @@ +# waybar-theme-udt + +A waybar bar for DP-3: pill clusters, icons from the desktop's own icon theme +instead of font glyphs, and colours driven by +[unified-desktop-theme](../unified-desktop-theme). + + [◆] [📅 Wed 15/09] [🕑 14:32] [1..8] [●●] [ open apps ] [🔊] [tray] [⏻] [🇮🇹] + +Each bracket is a pill. Pills group into clusters with gaps between them, so +the bar reads as a few objects rather than one strip. Hover cross-fades +background and text over 0.3s; taskbar buttons underline in the accent. + +## Install + + ./install.sh + +Installs to `~/.config/waybar-udt/` and prints the command to run it. **The +existing bar at `~/.config/waybar/` is left alone**, so DP-1 keeps working +while this one is tried on DP-3. + +Needs `unified-desktop-theme` checked out next to this repo: the palette comes +from there, and `install.sh` fails clearly if it is missing. + +## No glyphs + +Every symbol on this bar is a real icon from `Material-Black-Plum-Suru`, the +theme GTK already uses. Icons keep their own colours, matching every other +application on the desktop. + +waybar offers three ways to draw one, and this bar uses all three because no +single one covers everything: + +| Mechanism | Used by | Why | +| --- | --- | --- | +| `icon-theme` config key | taskbar, tray | Native support, nothing else needed. | +| `image` module | volume, microphone, presentation mode, language | Runs a script that resolves a state to an icon path. | +| CSS `background-image` | workspaces, clock, launcher | `format-icons` takes text, not paths. | + +The consequence worth knowing: **the workspace icons live in +`styles/modules.css`, not in the module config.** Changing one means editing +CSS. The alternative was eight `custom` modules faking a workspace strip, +which would have cost click-to-switch and the active and urgent states. + +The language flag went the other way. `hyprland/language` styles as +`#language` and nothing else, with no per-language class, so the flag could +not be picked by a selector; it is an `image` module driven by `wb-lang` +instead. + +`wb-icon --selftest` checks every icon name the bar asks for, CSS ones +included, and `install.sh` runs it. A missing icon renders as an empty pill +with nothing to say why, so it fails while someone is watching instead. + +### Why the icons do not follow the accent + +2466 of the 5169 panel icons in `Material-Black-Plum-Suru` carry a hardcoded +gradient and are not recolourable. That is intended here: icons match the rest +of the desktop rather than the bar. + +The two icons this repo ships are the exception, because the icon theme has +neither. `icons/slackware.svg` (Simple Icons, CC0) is single-path monochrome +and takes the udt accent at install time. The two flags keep their national +colours. + +## Layout + +| Cluster | Modules | +| --- | --- | +| left | launcher, date, time, workspaces, VM dots | +| center | open applications | +| right | privacy dots, volume drawer, tray, presentation mode, language | + +No battery, temperature, CPU, memory or backlight: this is a desktop. + +The clock is the only text on the bar. An icon cannot say 14:32, so the icon +sits before the text, which is what makes the pair match the icon-only pills +around it. + +### Workspaces + +| WS | Icon | | +| --- | --- | --- | +| 1 | `web-browser` | 5 | `document-edit` | +| 2 | `utilities-terminal` | 6 | `applications-graphics` | +| 3 | `text-editor` | 7 | `internet-chat` | +| 4 | `network-server` | 8 | `input-gaming` | + +Workspace 4 uses the same icon as the quickshell drawer's VM tile. Names are +generic, so the bar does not lie when the application on a workspace changes. + +## Colours + +This repo holds the bar; udt holds the palette. `styles/theme.css` is +generated by `udt-palette` and gitignored, like every other generated file in +that project. + +The dot scripts are bash and cannot read `@define-color`, so `install.sh` +writes `~/.config/waybar-udt/dots.colors` for them to source. Both fall back to +Macchiato values when it is missing, so they still run standalone. + +## Layout of this repo + + config.jsonc entry point; `include`s every module file + modules/ one file per module, by source + styles/ style.css imports the rest in order + icons/ the two icons the icon theme lacks + bin/ wb-icon, wb-idle, and the two dot scripts + +Wildcard `include` has been broken since waybar v0.14.0, so `config.jsonc` +lists every module file explicitly. + +`bin/vms_dots.sh` and `bin/privacy_dots.sh` used to live only in `~/bin`, in no +repository. They are versioned here now and symlinked back; `install.sh` keeps +any real file it finds there as `.pre-udt` first. + +## Reload + + killall -SIGUSR2 waybar + +`reload_style_on_change` is on, so CSS edits apply by themselves. + +Visual changes are measured, not reasoned about: + + grim -o DP-3 /tmp/shot.png + +## License + +GPLv2 only. See `LICENSE`. + +## Development Approach + +This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback. + +All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions. + +The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability. |
