libinput
0.11.0
A wrapper library for input devices
|
Clickpad is the name given to touchpads without physical buttons below the touchpad.
Instead, the whole touchpad acts as a button and left or right button clicks are distinguished by the location and/or number of fingers on the touchpad. "ClickPad" is a trademark by Synaptics Inc. but for simplicity we refer to any touchpad with the above feature as Clickpad, regardless of the manufacturer.
A clickpad is always marked with the INPUT_PROP_BUTTONPAD property. To perform a right-click on a Clickpad, libinput provides Software button areas and Clickfinger behavior.
In the page below, the term "click" shall refer to a physical button press and/or release of the touchpad, the term "button event" refers to the events generated by libinput and passed to the caller in response to a click.
On most clickpads, this is the default behavior. The bottom of the touchpad is split in the middle to generate left or right button events on click. The height of the button area depends on the hardware but is usually around 10mm.
Left, right and middle button events can be triggered as follows:
If fingers are down in the main area in addition to fingers in the left or right button area, those fingers are are ignored. A release event always releases the buttons logically down, regardless of the current finger position
The movement of a finger can alter the button area behavior:
On some touchpads, notably the 2015 Lenovo X1 Carbon 3rd series, the very bottom end of the touchpad is outside of the sensor range but it is possible to trigger a physical click there. To libinput, the click merely shows up as a left button click without any positional finger data and it is impossible to determine whether it is a left or a right click. libinput ignores such button clicks, this behavior is intentional.
This is the default behavior on Apple touchpads. Here, a left, right, middle button event is generated when one, two, or three fingers are held down on the touchpad when a physical click is generated. The location of the fingers does not matter and there are no software-defined button areas.
The Xorg synaptics driver uses 30% of the touchpad dimensions as threshold, libinput does not have this restriction. If two fingers are on the pad while clicking, that is a two-finger click.
Clickfinger configuration can be enabled through the libinput_device_config_click_set_method() call. If clickfingers are enabled on a touchpad with top software buttons, the top area will keep acting as softbuttons for use with the trackpoint. Clickfingers will be used everywhere else on the touchpad.
The Lenovo *40 series laptops have a clickpad that provides two software button sections, one at the top and one at the bottom. See Lenovo *40 series touchpad support for details on the top software button.
Some Clickpads, notably some Cypress ones, perform right button detection in firmware and appear to userspace as if the touchpad had physical buttons. While physically clickpads, these are not handled by the software and treated like traditional touchpads.