fix(menu): #131 — size text menus in ch with a cap, not in % of the monitor
All checks were successful
Check / eval (push) Successful in 3m49s
All checks were successful
Check / eval (push) Successful in 3m49s
Bernardo saw Recovery ellipsize on a 2560x1440 external, which falsified the item's model (40% + Inter 11 → "only below 1920"). Real cause: text menus render through themes/<slug>/rofi.rasi, where boreal + neon-glass pinned width: 620px (fixed — a wide panel buys nothing) while seven used 40%, and the font is whatever that file says — mostly monospace, far wider than the Inter that was measured. The modelled combination ships in no theme. The insight: a menu must fit its longest label, which is a count of characters in the THEME's font — so the window must scale with the font, not the screen. 40% gives a 1366 panel 546px and a 2560 one 1024px for the same row, and a 14pt mono theme needs ~25% more room than an 11pt one on both; a percentage cannot see either fact. Rofi has the right unit (`ch` = width of one digit in the current font) and `calc( a min b )` to cap it, so every text menu — generated and all nine whole-swaps — is now `width: calc( 84ch min 65% )`. 84ch fits the longest row we ship (69 chars) plus icon and padding; the cap is Bernardo's condition (never sprawl on a low-res panel) and it is measured, not assumed. Verified on hardware, not by arithmetic: 84ch = 756px in GeistMono 11 and 924px in JetBrainsMono 14; `calc( 84ch min 300px )` → 300px, so the clamp really clamps. Screenshots at both ends — the real Recovery menu at 756px (29% of 2560) with every label complete, and the Acer worst case reproduced pixel-exactly (888px = 65% of 1366, JetBrainsMono 14) also complete. Grid views override width per-invocation and are untouched. checks.rofi-text-width guards the class, proven by pinning boreal back to 620px and watching it fail by name. Acer V3 queued for its own fontconfig. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -538,6 +538,13 @@ Everything else below stays open; order is convenience, not a gate.
|
||||
computed from the focused monitor now, so this is checking the fallback
|
||||
path and the font, not the arithmetic), fully on-screen, none clipped by
|
||||
the bar. Dev box (2560×1440) already measured exact.
|
||||
- [ ] **#131 menu width on the real narrow panel** — open Menu ▸ Recovery.
|
||||
Pass = every label complete (no ellipsis) and the picker visibly *not*
|
||||
hogging the screen (≤65%, the cap). The geometry was already reproduced
|
||||
pixel-exactly on the dev box (888px + JetBrainsMono 14 = what 65% of 1366
|
||||
produces) and passed, so what is genuinely unproven here is only the
|
||||
Acer's own fontconfig/DPI resolving `ch` the same way — try it under a
|
||||
**JetBrainsMono 14 theme** (summer-day/night, kanagawa), the widest case.
|
||||
|
||||
## Latitude 5310 / 5410 only
|
||||
- [ ] **v1 QA batch on-hardware pass** (583708d batch was QEMU-verified) —
|
||||
|
||||
Reference in New Issue
Block a user