aboutsummaryrefslogtreecommitdiffstats
path: root/SPEC.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 17:04:07 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 17:04:07 +0200
commitfea331158915713d980bafde6c38a6954d5c233b (patch)
tree7d1e4ffa274814b904bf924d6d642c61536be860 /SPEC.md
parenta90fac477be6db6cbae563d1a29645e5eb215852 (diff)
downloadwaybar-theme-udt-fea331158915713d980bafde6c38a6954d5c233b.tar.gz
waybar-theme-udt-fea331158915713d980bafde6c38a6954d5c233b.zip
feat: move the desktop bar to DP-1, and add the mail module
The two bars were both on DP-3, which put the workspaces and the window list on a rotated 1080px screen while 2560px sat unused next to it. Status stays on DP-3 alone; the desktop itself moved to DP-1, where the window list has room. This replaces the stock bar rather than sitting beside it, so hyprland's autostart now launches this config instead of a bare waybar. ~/.config/waybar is left on disk, but nothing reads it. Mail comes over from the stock bar as the same notmuch watcher, minus the glyph: the envelope is a CSS background and the unread count stays text, because the count is the content rather than decoration, exactly like the clock. Its format carries a trailing space so the pill survives the empty state, since the watcher emits an empty text when nothing is unread and waybar draws no widget at all for a custom module whose output is empty. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'SPEC.md')
-rw-r--r--SPEC.md22
1 files changed, 14 insertions, 8 deletions
diff --git a/SPEC.md b/SPEC.md
index 16a701b..7d151d1 100644
--- a/SPEC.md
+++ b/SPEC.md
@@ -23,17 +23,22 @@ pointed at DP-3.
## Layout
- top [📅 Wed 15/09] [🕑 14:32] [●●] [S] [●] [🔊] [tray] [⏻] [🇮🇹]
- date time vm launcher priv vol tray present lang
+ DP-3 [📅 Wed 15/09] [🕑 14:32] [●] [S] [●] [✉ 9] [🔊] [tray] [⏻] [🇮🇹]
+ date time vm launcher priv mail vol tray present lang
- bottom [1..8] [ open windows ]
- workspaces taskbar
+ DP-1 [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
+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
+desktop itself, the workspaces and the window list, moved to DP-1 where there
+are 2560px to spread them across. Both are one waybar process reading one
stylesheet: waybar takes a top-level array of bars.
+This replaces the stock bar rather than sitting beside it. Hyprland starts it
+from `~/.config/hypr/sections/autostart.lua`, which used to launch a bare
+`waybar`; `~/.config/waybar/` is left on disk but nothing reads it.
+
Each bracket is one pill. Neighbouring pills in a cluster share a background
and weld together with asymmetric corner radii; clusters are separated by
transparent gaps, so the bar reads as groups rather than a continuous strip.
@@ -50,7 +55,8 @@ 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 | `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 | `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. |
Dropped from the current bar: `custom/breaktimer`, `custom/mail`,