Skip to content

v0.2.5

Choose a tag to compare

@github-actions github-actions released this 24 Aug 09:13
· 23 commits to main since this release
ce30e4a

Edgepad 0.2.5 adds double tap gesture to touchpad edge zones.

What’s new

  • Bind direction = "double-tap" on any edge, including edges that also act as sliders.
  • Configure the sequence with double_tap_timeout_ms and double_tap_max_distance in TOML or the Home Manager module.
  • Combine tap and double-tap on one edge without firing both actions: a completed pair emits only double-tap; an unmatched first tap fires when its deadline expires.
  • Edges without a double-tap binding keep immediate single-tap behavior.
  • Tap recognition now has a maximum contact duration through tap_max_duration_ms, preventing stationary holds from turning into taps.

Input correctness

The recognizer works with Type-B multitouch semantics, including slot reuse when the kernel omits unchanged coordinates. It cancels ambiguous sequences on overlapping contacts, excessive movement, long holds, slider steps, physical clicks, center passthrough, and SYN_DROPPED recovery. Pending taps also wake on an idle timer, so a single-tap action never waits for the next input event.

Config reload waits for active contacts and pending tap arbitration to settle, keeping one gesture sequence on one recognition profile.

Upgrade notes

  • The default maximum tap duration is 180 ms. If deliberate holds previously counted as taps in your setup, raise tap_max_duration_ms.
  • The default double-tap gap is 300 ms, and the default normalized distance is 0.04.
  • Double taps are single-finger sequences. Touching the pad with another finger cancels the pair rather than guessing across multi-touch input.
  • When an edge has both bindings, its single-tap action can be delayed by up to the configured double-tap timeout. Other edges are unaffected.

The implementation is covered at the recognizer, replay, routing, config, Home Manager, action dispatch, reload, idle-deadline, and /dev/uinput integration layers.

Read the recognition design and exact input contract.

Full changelog: v0.2.4…v0.2.5