fix(ui): #139 sheets size themselves; #141 waybar clicks stop reading the env
Some checks failed
Check / eval (push) Has been cancelled

#139 — calcurse/doctor floated full-screen. Two faults stacked, which is
why it looked like the float rules were dead:
  1. Hyprland 0.55.4 silently ignores percentage `size` rules. Matrix on
     hardware (both orders, kitty memory off): `size 60% 65%` never
     applies, `size 1536 936` applies either way, configerrors empty both
     times. Rule order was a red herring.
  2. Kitty defaults to remember_window_size=yes and replays the last OS
     window's size into every float — so after a tiled terminal, a sheet
     opens maximized. This is the Ghostty regression: Ghostty had no such
     memory, so fault 1 stayed invisible until #95.

Fix: remember_window_size=no (floats must be deterministic) and the sheets
ask for their own size — term-sheet.nix reads the focused monitor and
hands kitty the px, because px in a rule cannot mean "a fraction of *this*
screen" and one pair cannot serve 2560x1440 and the 1366x768 Acer (#131).
Those windows keep float/center and deliberately carry no size rule.

#141 — the updates click did nothing: whole-swaps hand-wrote
`sh -c '$TERMINAL …'` and Waybar has no TERMINAL (home.sessionVariables →
login shells only; the bar is spawned by Hyprland). Fixed at the root:
`nomarchy-updates upgrade-window` opens its own window, so all five call
sites name one env-free command and a theme file stops having an opinion
about terminals. checks.waybar-swap-env guards the class.

Bernardo asked mid-task for the update window to float — it is now the
third caller of the sheet helper (com.nomarchy.updates, 45%x50%).

V3 on the dev box: calendar 1536x936, doctor 1408x1008, updates 1152x720
— exactly the intended fractions, floating and centred; #141 driven under
`env -i` with no TERMINAL, matching Waybar's real environment; the guard
proven by reintroducing the bug. Acer V3 queued.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 10:04:28 +01:00
parent 4a63f27bf4
commit 55a516e1c7
15 changed files with 220 additions and 74 deletions

View File

@@ -19,6 +19,34 @@ Template:
---
## 2026-07-16 — #139 + #141: the quick ones from the T14s round
- **Task:** #139 (terminal sheets open full-screen) and #141 (Waybar updates
click does nothing) — Bernardo: "let's do the quick ones first".
- **Did:** #139 was two faults: Hyprland 0.55.4 ignores **percentage** `size`
rules (clean matrix on hardware: both orders, Kitty memory off — px applies,
% never does, no configerror), and Kitty replays its remembered window size
into every float. Fix: `remember_window_size no` + a shared
`modules/home/term-sheet.nix` that reads the focused monitor and hands Kitty
the px, so the % intent survives without a rule; the size rules are gone.
#141: whole-swaps used `$TERMINAL`, which Waybar's env does not have →
`nomarchy-updates upgrade-window` opens its own window, all 5 call sites are
env-free, `checks.waybar-swap-env` guards the class. Bernardo asked mid-task
for the update window to float too → third caller of the sheet helper.
- **Verified:** V0 `nix flake check --no-build`. **V3 on the dev box:** built
the HM package with `--override-input`, drove the real launchers — calendar
1536×936 (=60%×65%), doctor 1408×1008 (=55%×70%), updates 1152×720
(=45%×50%), all floating + centred in the work area. #141 tested the way it
actually fails: `env -i` with no `TERMINAL` (matching Waybar's real env) →
window opens. Guard proven by reintroducing the bug: it fails with the
offending file/module/key named.
- **Pending:** Acer (1366×768) V3 queued — the sheets are monitor-relative now,
so it should hold by construction, which is exactly why it is worth one look.
#131 is **live on 2560** per Bernardo, so its "only at 1366" model is wrong —
next up.
- **Next suggestion:** #131 (recovery labels truncating on a wide panel —
observed, so the measurement in that item is what needs re-doing), then #137
(plymouth per-head) or #142 (rebuild-while-docked).
## 2026-07-16 — #138 dock audio: the graph restart was the bug (44aac0f + this)
- **Task:** #138 — Meet "no mic or speakers" in Chromium; Zoom fine; no repro
on a fresh boot. Bernardo's hypothesis (pipewire restarts → Chromium never