Bug 1469713 - No three finger middle mouse button emulation
Summary: No three finger middle mouse button emulation
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-libinput
Version: 26
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-07-11 17:22 UTC by Sjoerd Mullender
Modified: 2017-07-13 07:30 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-07-13 07:01:03 UTC
Type: Bug
Embargoed:


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

Description Sjoerd Mullender 2017-07-11 17:22:34 UTC
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):
xorg-x11-drv-libinput-0.25.1-2.fc26.x86_64

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 22:06:59 UTC
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 06:24:57 UTC
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 06:28:31 UTC
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 23:32:03 UTC
"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 06:56:31 UTC
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"
EndSection

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 07:01:03 UTC
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 07:30:13 UTC
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.