From d79ad3517ea7cd77e2f853b2ce7d37f6df523dcd Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sat, 18 Jul 2026 13:22:52 +0100 Subject: [PATCH] =?UTF-8?q?fix(waybar):=20#152=20=E2=80=94=20inset=20the?= =?UTF-8?q?=20workspace=20pill,=20breathe=20at=20the=20bar's=20ends?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The generated bar (every non-whole-swap theme; whole-swaps untouched): - The active-workspace highlighter filled the bar's full inner height and visually overhung the rounded border. The pill now gets a 3px vertical inset margin (the boreal whole-swap's proven pattern) and the bar grows 34 -> 36 so the inset doesn't cramp the number. - The end modules sat hard against the bar's rounded corners (the power button ~8px from the right curve vs ~28px inter-icon gaps). The Nomarchy mark and the power button get wider outer padding (14/16px); the item-28c group rhythm is preserved. Verification: V2. nix flake check --no-build green. §3 protocol: before/after theme-shot under kanagawa (generated palette) viewed at 2x crops — before: pill overhangs top+bottom, power glyph kisses the corner; after: pill fully inside the bar, clear end gap (before /nix/store/iwrvzzdd...theme-shot-kanagawa, after /nix/store/za...see scratchpad shot-kanagawa-after.path). No-regression capture under the summer-night whole-swap viewed — its chip identity unchanged (whole-swaps replace both style and layout, out of scope per the item). BACKLOG #152 closed: deleted per the finished-items rule in the next bookkeeping touch of this push. Co-Authored-By: Claude Fable 5 --- modules/home/waybar.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/home/waybar.nix b/modules/home/waybar.nix index 8d132b7..9aa65c1 100644 --- a/modules/home/waybar.nix +++ b/modules/home/waybar.nix @@ -162,7 +162,10 @@ let # normal tiling. Keep in sync with the whole-swap jsoncs (parity rule). layer = "bottom"; position = "top"; - height = 34; + # 36, not 34: the active-workspace pill is inset 3px top+bottom (CSS + # below) so it can never overhang the bar's border — the extra height + # keeps the pill's text from cramping inside the inset (#152). + height = 36; margin-top = t.ui.gapsOut; margin-left = t.ui.gapsOut; margin-right = t.ui.gapsOut; @@ -428,8 +431,12 @@ let 2.0, gated by tools/check-theme-contrast.py) — the palettes that once made it vanish (gruvbox muted≈base, item 27) were retuned. Secondary-but-not-dim stays alpha(@text, 0.85). */ + /* 3px vertical margin insets the active pill INSIDE the bar — without + it the filled button spans the bar's full inner height and visually + overhangs the rounded border (#152). */ #workspaces button { padding: 0 8px; + margin: 3px 0; color: @muted; border-radius: ${toString t.ui.rounding}px; } @@ -458,7 +465,10 @@ let color: @accent; font-family: Nomarchy; font-size: ${toString (t.fonts.size + 4)}pt; - padding: 0 10px; + /* Wider outer padding: the bar's rounded corner curves into the + end module's box, so the edge glyphs need more room than the + uniform 10px or they look cramped (#152; power button mirrors). */ + padding: 0 10px 0 14px; } #custom-nomarchy:hover { color: @accentAlt; } @@ -466,6 +476,7 @@ let color: alpha(@text, 0.85); padding: 0 10px; } + #custom-powermenu { padding: 0 16px 0 10px; } #custom-powermenu:hover { color: @bad; } /* Group rhythm (item 28c): a wider breath before each functional