HDMI trackpad: first swipe after a restart, and long two-finger presses (board)
Change: openspec/changes/the-hdmi-trackpad-survives-restarts-and-long-two-finger-presses.
Evidence class for everything here: injected raw touch + shell/daemon log +
grim. No finger touched the glass.
Method
tools/fake-touchscreen.py creates a uinput protocol-B touchscreen with the
GT9895’s axis ranges. tools/trackpad-fake-run.sh starts a second
k230-touch-trackpad instance (the installed binary, --device= pointed at
the fake panel, --log-events). That exercises the real gate, relay,
virtual touchpad, libinput, compositor and shell path. The service’s own
instance keeps serving the real panel. Pointer placement used
tools/board-pointer.py.
Before the fix (system 4ad02cm5… and earlier, 2026-10-15)
- 22:48:36: the operator’s first two-finger swipe after a live deployment
logged
k230-touch-trackpad: shell IPC phase=begin error=BrokenPipeand was dropped. - A 1 s still two-finger press with the cursor on a widget produced no secondary click on page 1 or page 2. The daemon output a valid two-finger down and up, but with the source timestamps 1 s apart, which is past libinput’s tap timeout.
After the fix (system c2wxyv7h…, deployed live 2026-10-15)
- Restart (with the first fixed daemon build,
4sr6kyyw…, which has the same IPC code): a fake-panel instance swiped, thensystemctl restart shell.servicerestarted sway, then the same instance swiped again. Its log showsshell IPC phase=begin error=BrokenPipefollowed byshell fingers=2 accepted=true, andfirst-swipe-after-sway-restart-page2-1280x800-grim.pngshows Home on page 2. - Cursor on the Clock,
hold2 0.6 0.3 1000(two still fingers for 1 s): the shell loggedhome-widget-secondary-clickandlong-two-finger-press-clock-1280x800-grim.pngshows rearrange mode. - Done, then
swipe2 0.5 0.15 0.5 0.85 400(accepted, Home to page 2), cursor on Weather,hold2 0.6 0.3 1000:home-widget-secondary-click, with the Weather badge visible inlong-two-finger-press-page2-after-swipe-1280x800-grim.png. - Cursor on Done, one-finger
tap:pointer-down,pointer-up, and rearrange mode closed.