Red Hat Bugzilla – Bug 1469713
No three finger middle mouse button emulation
Last modified: 2017-07-13 03:30:13 EDT
Description of problem:
After upgrading to Fedora 26, the three finger click to get an emulated middle mouse button click didn't work anymore.
After installing xorg-x11-drv-synaptics-legacy I got the three finger click back.
Upgrade to Fedora 26 involved replacing the old synaptics driver with the new libinput driver.
I use XFCE as my desktop environment (i.e. X, not Wayland).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.Run Fedora 26 and start up XFCE.
3.Attempt three finger click
Three finger click registers as button 1 (left button) click.
Three finger click registers as button 2 (middle button) click.
I use a Dell XPS 13 with a Synaptics touchpad.
what's the output of xinput list-props "the touchpad device name"? you can get the device name by just running xinput list)
Created attachment 1296744 [details]
xinput list-props of device without xorg-x11-drv-synaptics-legacy
This is the output of xinput list-props of the device without xorg-x11-drv-synaptics-legacy installed (and after a reboot).
The output of xinput list for the pointer:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=10 [slave pointer (2)]
⎜ ↳ DLL0704:01 06CB:76AE Touchpad id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
It's id=12 that is being used (disabling it causes the touchpad to stop working).
Created attachment 1296746 [details]
xinput list-props of device with xorg-x11-drv-synaptics-legacy
This is the output of xinput list-props of the touchpad device with xorg-x11-drv-synaptics-legacy installed. This works the way I would like.
"libinput Click Method Enabled (297): 1, 0"
clickfinger isn't working because the driver defaults to software buttons and you didn't change the click method. You either need to set this in an xorg.cond.f snippet (see man 4 libinput) or change it in the gnome-tweak-tool (for gnome) or however XFCE does it, I don't know that off-hand, sorry.
Let me know how you go, once that's enabled it should work fine again.
I created a file /etc/X11/xorg.conf.d/30-touchpad.conf with the following contents:
Option "ClickMethod" "clickfinger"
I removed xorg-x11-drv-synaptics-legacy and now things are working properly again (i.e. including three finger click).
https://wiki.archlinux.org/index.php/Libinput#Common_options was very useful in getting this file set up.
Question remains: why does the driver default to software buttons if the hardware buttons are more capable?
mostly because we have to default to something and when we decided on this default 3 years ago, the vast majority of touchpads had visible markers to indicate software buttons. That was also the default behaviour in windows for those buttons. Macs had a different default behaviour, so we default to clickfinger there.
There are 2 layers above libinput itself that decide on those defaults, the xorg-x11-drv-libinput driver and the desktop environment. Either of those could switch the default if they see fit and the user would be none the wiser :)
Thanks, both for the quick help and the explanation.