Reconsider "clickfingers" default on touchpads
77ff1d91 changed the default for org.gnome.desktop.peripherals.touchpad
click-method
from 'default'
(“left as hardware default”, which I believe means “whatever libinput decides”) to 'fingers'
(“number of fingers”). This change was discussed on bugzilla bug #757255.
While Endless was still on an older branch of GNOME, without this change, we backported it in response to user testing for Hack. I believe the test groups were children in California, aged ~8-16. @cosimoc said at the time:
The default touchpad behavior on the ASUS E406MA laptop we're using for Hack is to have a "real" right click button in the area of the touchpad mapping to that (the bottom right corner). After our play testing, it became clear that users expect a tap on any area of the touchpad to be a click, but right now when the right click area is tapped, a right click is registered, which often does not trigger any/the expected action in the UI, which only reacts to left clicks. We should change the default configuration of this touchpad at least for Hack, to be more like a Mac and register a left click when the touchpad is tapped anywhere.
An interesting point here is that the E406MA touchpad actually has a white line printed on it to physically demarcate the left- and right-click areas. Nonetheless:
We observed users many times clicking when not looking at the touchpad, and saying that the software is broken because nothing happened, when in reality they clicked the right button.
We decided to follow upstream and switched the behaviour on all Endless systems. This had several results:
- We received many reports from end users – via our customer support channel, on our forum, and in-person to our founder! – that the touchpad “no longer works” after the upgrade. From a quick search: 1, 2, 3, 4.
- Multiple OEM partners reported that the touchpad no longer works. When we explained that this is a deliberate change, they asked us to revert it. (After all, they're manufacturing computers where the right-click area is physically demarcated.)
- Several people within Endless were surprised by the change, and reported it as a bug.
After some discussion, we reverted the change, and instead added a patch to libinput to set the chromebook quirk (which changes the hardware default to clickfingers) on the Hack computer. The only use of this quirk is in the function which determines the default right-click behaviour. (We could have created a quirk specific to this model, as System76 evidently has for their machines, but decided that reusing an existing quirk was a safer change to carry downstream in the short term.)
To revisit some of the points raised on #757255:
- This change was the top item in the release notes. While we do not show the release notes in the OS, we do publish them on the forum, share them with OEMs, and distribute them internally. I am sceptical that announcing the change more prominently in the OS would have changed the response – the majority of users to whom we explained the new behaviour immediately asked how to change it back, even though we also included instructions for this in the release notes. By contrast, when we changed the behaviour back to the previous default a few months later, I'm not aware of anyone asking how to restore the clickfingers behaviour.
- The libinput maintainers profess no desire to start a database about touchpads with physical markings, but I think we actually want the opposite database, of touchpads where the "fingers" behaviour should be used by default. This database already exists and has 7 entries.
- Setting aside the "physical demarcation” question, our experience suggests that this is a matter of user preference, based in part on experience with other computers. Californian children are more likely to have experience with Chromebooks and Macs, and touchscreen devices, and so expect the clickfingers behaviour even if a line is painted on the touchpad. (I note that macOS and Chrome OS make much less heavy use of right-click than Windows and GNOME.) Much of the rest of the world has either no computer experience, or experience with Windows laptops which use the demarcated area.
My personal opinion:
- The default should be changed back to
default
- Specific models where the 'clickfingers' default should be quirked in libinput, as Apple, System76 and Chromebook hardware already is
- (gulp) The preference should be exposed in the Mouse & Touchpad panel in Settings. We already expose several related settings – "Tap to Click" (if disabled, the only sensible choice for right-clicking is "areas"); and "Two-finger Scrolling” versus “Edge Scrolling” (although these settings are mutually-exclusive, they are presented as separate switches).
Unfortunately there are 4 possible values for this gsetting:
How to generate software-emulated buttons, either disabled (“none”), through specific areas (“areas”), number of fingers (“fingers”) or left as hardware default (“default”).
And the behaviour with "default" is hardware-dependent in a way which is hard for Settings to know. Tweaks actually ignores the "default" value, and displays the following:
I find this hard to understand, even though I have spent quite some time thinking about this. I don't have a concrete suggestion for how the preference could be offered more clearly.