# Widget picker: rows past the card on landscape, and tap to add (2026-10-15) ## The defect on the board `board/before-widget-rows-past-the-card-1280x800-grim.png` is a native `grim` capture on the HDMI monitor (1280x800). The system was `/nix/store/acmin041a4hb7nglym6h1lcm66sp3wyh-nixos-system-nixos-26.11.20260919.20b1ddd`. The Widgets page was opened with the scripted sequence below: ``` swaymsg seat - cursor set 900 450; cursor press/release button3 # Home menu swaymsg seat - cursor set 640 115; cursor press/release button1 # Widgets ``` The card ends at y≈608, but the Battery row (y≈602-694) and the Weather row (y≈708-800) are drawn below it, over the dock. A press there fails the picker's card test, which dismisses the sheet. The operator had reported adding the Battery widget and "nothing showed up". On the same board, a scripted press-and-hold on the Battery row followed by a release did place a Battery widget. That path checks only the row, not the card, so dragging still worked. ## Host renders after the fix `host/widget-picker-{568x1232,1232x568,1280x800,1920x1080}.png`, generated by ``` cd nix/rust-shell-client cargo run --example render_landscape_surfaces -- ``` The renders use the `widget-picker-*` outputs. On the portrait panel the rows stay in one column at full size. At 1232x568 and 1280x800 they form two columns inside the card. At 1920x1080 they stay in one column, because it fits. Evidence class: host render, which proves layout only. The board check is task 1.3. ## The fix on the board (injected pointer) The system was `/nix/store/hfmjszha3b3xmlv483yq9hvnpg6gfm81-nixos-system-nixos-26.11.20260919.20b1ddd` (bundle `zmwaj1j5…`), on HDMI at 1280x800, at 16:57 CDT on 2026-10-15. Evidence class: **injected pointer events** (`swaymsg seat - cursor set/press/release`) plus native `grim` captures. This is not a physical trackpad. - `board/after-widgets-page-1280x800-grim.png` was taken after a right-click at (1100, 450) and a click on Widgets. The seven rows sit in two columns inside the card, each subtitled "tap to add, hold to drag". - `board/after-weather-row-click-1280x800-grim.png` was taken after one click on the Weather row at (940, 330), which had been past the card before the fix. The sheet closed and a Weather widget appeared in the free space to the right of the Battery widget. - The shell logged `pointer-down`, `pointer-up`, `home-layout-changed`. - `home.json` now lists `clock`, `battery`, `weather`. A right-click below the grid's last row (y = 520 or 560 at 1280x800) opens nothing. That is the existing empty-cell rule, not a defect.