aboutsummaryrefslogtreecommitdiffstats
path: root/SPEC.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 16:53:34 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 16:53:34 +0200
commit9adfac969af75a09054f1eb6f1894ab6bdf8b2a5 (patch)
treeda6bb4b96f8a5a279cf42865eee8dfeb7f36eb0e /SPEC.md
parent66a8d05e2461761b60e1b4126437d04dc4f3dbbe (diff)
downloadwaybar-theme-udt-9adfac969af75a09054f1eb6f1894ab6bdf8b2a5.tar.gz
waybar-theme-udt-9adfac969af75a09054f1eb6f1894ab6bdf8b2a5.zip
feat: split the bar in two on DP-3
DP-3 is rotated, so a bar there is 1080px wide rather than 1920, and one bar holding every module was too crowded. Status sits on top now, the desktop itself along the bottom: workspaces on the left, open windows on the right. Both bars are one waybar process reading one stylesheet, because waybar takes a top-level array of bars, so the two cannot drift apart. Presentation mode is the statusctl-backed module the DP-1 bar already runs, rather than the wb-idle module written for this bar. It talks to files under XDG_RUNTIME_DIR instead of to quickshell, so it keeps working while the shell is down, and it already emits a state class, so the glyphs are simply dropped and the icon chosen in CSS. wb-idle and its module are gone. The module needs a format of one space. It defaults to "{text}", statusctl emits an empty text, and waybar draws no widget at all for a custom module whose formatted output is empty: not an empty pill, no pill. That is the same trap the launcher hit, and it cost a wrong diagnosis on the way: a min-height was added first on the theory that the pill was collapsing, which was treating a symptom of a widget that did not exist. A forced red background proved it was never drawn at all. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'SPEC.md')
-rw-r--r--SPEC.md17
1 files changed, 12 insertions, 5 deletions
diff --git a/SPEC.md b/SPEC.md
index c6a2fae..16a701b 100644
--- a/SPEC.md
+++ b/SPEC.md
@@ -23,9 +23,16 @@ pointed at DP-3.
## Layout
- ┌ left ──────────────────────────────┐ ┌ center ┐ ┌ right ─────────────────────┐
- [◆] [📅 Wed 15/09] [🕑 14:32] [1..8] [●●] [ open apps ] [🔊 62%] [tray] [⏻] [🇮🇹]
- launcher date time workspaces vm taskbar volume tray present lang
+ top [📅 Wed 15/09] [🕑 14:32] [●●] [S] [●] [🔊] [tray] [⏻] [🇮🇹]
+ date time vm launcher priv vol tray present lang
+
+ bottom [1..8] [ open windows ]
+ workspaces taskbar
+
+DP-3 is rotated, so a bar there is 1080px wide rather than 1920. One bar
+holding every module was too crowded at that width, so status sits on top and
+the desktop itself along the bottom. Both are one waybar process reading one
+stylesheet: waybar takes a top-level array of bars.
Each bracket is one pill. Neighbouring pills in a cluster share a background
and weld together with asymmetric corner radii; clusters are separated by
@@ -43,7 +50,7 @@ transparent gaps, so the bar reads as groups rather than a continuous strip.
| center | `wlr/taskbar` | `icon-theme` config key | Per-window application icons. |
| right | `group/wireplumber` | `image` module | Drawer group kept as it is today. |
| right | `tray` | application-provided | |
-| right | `idle_inhibitor` | `image` module | Presentation mode. |
+| right | `custom/presentation` | CSS, keyed on the module's class | Presentation mode, the same `statusctl`-backed module the DP-1 bar runs. 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. |
Dropped from the current bar: `custom/breaktimer`, `custom/mail`,
@@ -128,7 +135,7 @@ Modular, one file per module, mirroring the current setup:
tray.jsonc
wireplumber.jsonc
image/
- idle_inhibitor.jsonc presentation mode, via `image`
+ language.jsonc the keyboard flag, via `image`
styles/
style.css entry point, imports the rest in order
theme.css GENERATED by udt-palette, gitignored