Highlights
edgepad v0.2.2 fixes physical touchpad button handling and makes capture, replay, and live diagnostics reproduce daemon behavior more accurately.
Physical clicks and click-drag
Physical touchpad buttons are now passed through to the virtual touchpad, including the device properties and button capabilities required by libinput.
On buttonpads and clickpads, a physical button press takes priority over edge recognition. Active edge contacts are promoted to normal passthrough contacts before the button event, allowing physical clicks and click-drag to work even inside configured edge zones.
The press cancels the pending edge gesture, while slider steps already emitted are preserved. Tap-to-click remains unchanged, and touchpads with separate physical buttons retain their existing edge behavior.
Held button state is also restored after SYN_DROPPED recovery and released during output cleanup, preventing stuck virtual buttons.
Config-aware diagnostics
edgepad proxy, edgepad replay, and edgepad replay-raw now use the normal edgepad configuration by default.
This keeps device selection, active zones, edge widths, swipe thresholds, tap timing, and sliders aligned with the running daemon. Use --config <file> to select another configuration or --built-in-defaults for an isolated recognizer profile.
Diagnostic replay and proxy commands report matched gestures and slider steps but never execute configured actions.
Timestamped capture and replay
Capture files now preserve the kernel timestamp for every frame boundary. Replay uses those timestamps to apply tap_min_duration_ms in the same way as the live proxy.
Both parsed and raw replay validate timestamp ordering, which makes tap and timing-related bugs reproducible from saved captures instead of approximating their behavior.
Documentation
Installation and onboarding documentation now follows the complete setup path for release and Nix users, including verification, updates, troubleshooting, emergency shutdown, and warnings before commands that grab the physical touchpad.
Compatibility
Existing edgepad configuration files remain valid.
Diagnostic command behavior has changed:
proxy,replay, andreplay-rawnow expect the default user config unless--configor--built-in-defaultsis provided.- Replay fixtures require a timestamp on every
SYN_REPORTandSYN_DROPPEDboundary. Older captures without timestamps should be regenerated or updated.
Full Changelog: v0.2.1...v0.2.2