evidence · 2.6 KiB

README.md

Committed at docs/evidence/home-screen/widget-picker-fit/README.md. This is what grounds the requirements that cite it.

Open raw source

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 -- <dir>

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.

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.