Bug 1469713 - No three finger middle mouse button emulation
No three finger middle mouse button emulation
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-libinput (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Peter Hutterer
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2017-07-11 13:22 EDT by Sjoerd Mullender
Modified: 2017-07-13 03:30 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2017-07-13 03:01:03 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
xinput list-props of device without xorg-x11-drv-synaptics-legacy (1.61 KB, text/plain)
2017-07-12 02:24 EDT, Sjoerd Mullender
no flags Details
xinput list-props of device with xorg-x11-drv-synaptics-legacy (1.84 KB, text/plain)
2017-07-12 02:28 EDT, Sjoerd Mullender
no flags Details

  None (edit)
Description Sjoerd Mullender 2017-07-11 13:22:34 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):

How reproducible:

Steps to Reproduce:
1.Run Fedora 26 and start up XFCE.
2.Run xev
3.Attempt three finger click

Actual results:
Three finger click registers as button 1 (left button) click.

Expected results:
Three finger click registers as button 2 (middle button) click.

Additional info:
I use a Dell XPS 13 with a Synaptics touchpad.
Comment 1 Peter Hutterer 2017-07-11 18:06:59 EDT
what's the output of xinput list-props "the touchpad device name"? you can get the device name by just running xinput list)
Comment 2 Sjoerd Mullender 2017-07-12 02:24 EDT
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).
Comment 3 Sjoerd Mullender 2017-07-12 02:28 EDT
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.
Comment 4 Peter Hutterer 2017-07-12 19:32:03 EDT
"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.
Comment 5 Sjoerd Mullender 2017-07-13 02:56:31 EDT
I created a file /etc/X11/xorg.conf.d/30-touchpad.conf with the following contents:
Section "InputClass"
    Identifier "devname"
    Driver "libinput"
    MatchIsTouchpad "on"
    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?
Comment 6 Peter Hutterer 2017-07-13 03:01:03 EDT
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 :)
Comment 7 Sjoerd Mullender 2017-07-13 03:30:13 EDT
Thanks, both for the quick help and the explanation.

Note You need to log in before you can comment on or make changes to this bug.