libinput  0.13.0
A wrapper library for input devices
Tap-to-click behaviour

"Tapping" or "tap-to-click" is the name given to the behavior where a short finger touch down/up sequence maps into a button click.

This is most commonly used on touchpads, but may be available on other devices.

libinput implements tapping for one, two, and three fingers, where supported by the hardware, and maps those taps into a left, right, and middle button click, respectively. Not all devices support three fingers, libinput will support tapping up to whatever is supported by the hardware. libinput does not support four-finger taps or any tapping with more than four fingers, even though some hardware can distinguish between that many fingers.

Tapping is disabled by default, see this commit because:

Tapping can be enabled on a per-device basis. See libinput_device_config_tap_set_enabled() for details.

Tap-and-drag

libinput also supports "tap-and-drag" where a tap immediately followed by a finger down and that finger being held down emulates a button press. Moving the finger around can thus drag the selected item on the screen. Lifting the finger and putting it back down immediately (i.e. within the timeout) will continue the dragging process, so that multiple touchpad-widths of distance can be covered easily. If two-fingers are supported by the hardware, a second finger can be used to drag while the first is held in-place.

Constraints while tapping

A couple of constraints apply to the contact to be converted into a press, the most common ones are: