You are not logged in.

#1 2017-11-27 09:44:44

kjozsa
Member
Registered: 2008-06-05
Posts: 180

Enabling 3-finger taps on HP touchpad with libinput

I have a HP Zbook Studio G4 laptop with an "AlpsPS/2 ALPS GlidePoint" touchpad and running Xorg with GNOME. I switched the touchpad to "Clickfinger" behaviour with `xinput set-props ...` and I could switch "two finger taps" meaning middle click instead of right click, but no matter how I try, I can't get "three finger taps" recognized - `xev` reports "button2" being clicked on every three-fingers tap.

I'm sure my touchpad is capable of multi-fingers clicks so that must be a software problem.. anyone has an idea how to configure multi-finger clicks with libinput? Thanks!

Offline

#2 2017-11-30 01:10:58

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,178

Re: Enabling 3-finger taps on HP touchpad with libinput

What does xev say for two-finger taps?


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#3 2017-11-30 05:32:09

kjozsa
Member
Registered: 2008-06-05
Posts: 180

Re: Enabling 3-finger taps on HP touchpad with libinput

One and two finger taps:

ButtonPress event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15286316, (111,106), root:(151,218),
    state 0x0, button 1, same_screen YES

ButtonRelease event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15286496, (111,106), root:(151,218),
    state 0x100, button 1, same_screen YES

ButtonPress event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15287312, (111,106), root:(151,218),
    state 0x0, button 2, same_screen YES

ButtonRelease event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15287312, (111,106), root:(151,218),
    state 0x200, button 2, same_screen YES

Three finger taps generate no xev events and two finger up and down movements (for scrolling) generate subsequent button 4 and button 5 Press/Release movements like this:

ButtonPress event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15645232, (115,34), root:(115,1618),
    state 0x0, button 5, same_screen YES

ButtonRelease event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15645232, (115,34), root:(115,1618),
    state 0x1000, button 5, same_screen YES

ButtonPress event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15645353, (115,34), root:(115,1618),
    state 0x0, button 5, same_screen YES

ButtonRelease event, serial 37, synthetic NO, window 0x2c00001,
    root 0x12d, subw 0x0, time 15645353, (115,34), root:(115,1618),
    state 0x1000, button 5, same_screen YES

Offline

#4 2017-11-30 16:19:12

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,178

Re: Enabling 3-finger taps on HP touchpad with libinput

Please post your config. It works fine here for different hardware, so it is not libinput per se. You could try if evdev works better for you.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#5 2017-11-30 16:20:33

kjozsa
Member
Registered: 2008-06-05
Posts: 180

Re: Enabling 3-finger taps on HP touchpad with libinput

@cfr what config do you mean? libinput properties?

Offline

#6 2017-11-30 23:31:43

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,178

Re: Enabling 3-finger taps on HP touchpad with libinput

What commands or files are you using to do the configuration?


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#7 2017-12-01 10:10:33

kjozsa
Member
Registered: 2008-06-05
Posts: 180

Re: Enabling 3-finger taps on HP touchpad with libinput

Ok, I have an Xorg config part like this:

[root@manta ~]# cat /etc/X11/xorg.conf.d/30-touchpad.conf 
Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchProduct "ALP0012:00 044E:120C"
    Option "TappingButtonMap" "lrm"
EndSection

Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchProduct "AlpsPS/2 ALPS GlidePoint"
    Option "Ignore" "on"
EndSection

This HP ZBook Studio G4 (as well as the G3) seems to detect the touchpad twice somehow, using these two names. If I leave it as is, it uses the first driver on the boot, and the second one after suspend/resume, so I decided to disable the second completely and force using the first.

Note that with this setup `xev` reports now button1 and button3 clicks on 1 and 2-fingers taps and can't make a button2 tap anyhow.

My `xinput list` relevant parts look like:

kjozsa@manta:~$ xinput list 
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech MX Anywhere 2S                 	id=10	[slave  pointer  (2)]
⎜   ↳ ALP0012:00 044E:120C                    	id=12	[slave  pointer  (2)]

and properties of the touchpad are currently:

kjozsa@manta:~$ xinput list-props 12
Device 'ALP0012:00 044E:120C':
	Device Enabled (141):	1
	Coordinate Transformation Matrix (143):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (278):	0
	libinput Natural Scrolling Enabled Default (279):	0
	libinput Left Handed Enabled (280):	0
	libinput Left Handed Enabled Default (281):	0
	libinput Accel Speed (282):	0.069597
	libinput Accel Speed Default (283):	0.000000
	libinput Accel Profiles Available (284):	1, 1
	libinput Accel Profile Enabled (285):	1, 0
	libinput Accel Profile Enabled Default (286):	1, 0
	libinput Scroll Methods Available (287):	0, 0, 1
	libinput Scroll Method Enabled (288):	0, 0, 0
	libinput Scroll Method Enabled Default (289):	0, 0, 0
	libinput Button Scrolling Button (290):	2
	libinput Button Scrolling Button Default (291):	2
	libinput Middle Emulation Enabled (292):	0
	libinput Middle Emulation Enabled Default (293):	0
	libinput Send Events Modes Available (263):	1, 0
	libinput Send Events Mode Enabled (264):	0, 0
	libinput Send Events Mode Enabled Default (265):	0, 0
	Device Node (266):	"/dev/input/event8"
	Device Product ID (267):	1102, 4620
	libinput Drag Lock Buttons (294):	<no items>
	libinput Horizontal Scroll Enabled (295):	1

I also have this in .xinitrc:

$ cat .xinitrc 
#xinput set-prop "AlpsPS/2 ALPS GlidePoint" "libinput Horizontal Scroll Enabled" 0
xinput set-prop "ALP0012:00 044E:120C" "libinput Natural Scrolling Enabled" 1
xinput set-prop "ALP0012:00 044E:120C" "libinput Accel Speed" 1

xbindkeys

and it's symlinked as

kjozsa@manta:~$ ls -l .x*
-rw-r--r-- 1 kjozsa users 484 Nov 23 16:05 .xbindkeysrc
-rwxr-xr-x 1 kjozsa users 237 Nov 30 11:38 .xinitrc
lrwxrwxrwx 1 kjozsa users  21 Nov 29 15:52 .xprofile -> /home/kjozsa/.xinitrc
lrwxrwxrwx 1 kjozsa users  21 Nov 27 09:31 .xsession -> /home/kjozsa/.xinitrc
lrwxrwxrwx 1 kjozsa users  21 Dec  1 10:50 .xsessionrc -> /home/kjozsa/.xinitrc

but I still can't get this to run upon GDM/Gnome startup so I execute this currently manually. Still looking for a solution to start this properly automatically..

I think that's all I have done - hope it helps!

Offline

#8 2017-12-01 23:13:52

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,178

Re: Enabling 3-finger taps on HP touchpad with libinput

Whatever you are executing is clearly not doing anything: the output clearly shows that neither natural scrolling nor a speed of 1 are effective. I don't understand the need for two sections of configuration. Unless you have multiple touchpads, why do you need more than to match on its being a touchpad?

The list of properties doesn't have anything for tapping at all and that looks strange to me.

Here's a comparison of my config and properties:

Section "InputClass"
        Identifier "cfr libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "1"
        Option "TappingDragLock" "1"
        Option "AccelSpeed" "1"
EndSection
Device 'SynPS/2 Synaptics TouchPad':
        Device Enabled (142):   1
        Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (298): 1
        libinput Tapping Enabled Default (299): 0
        libinput Tapping Drag Enabled (300):    1
        libinput Tapping Drag Enabled Default (301):    1
        libinput Tapping Drag Lock Enabled (302):       1
        libinput Tapping Drag Lock Enabled Default (303):       0
        libinput Tapping Button Mapping Enabled (304):  1, 0
        libinput Tapping Button Mapping Default (305):  1, 0
        libinput Natural Scrolling Enabled (277):       0
        libinput Natural Scrolling Enabled Default (278):       0
        libinput Left Handed Enabled (279):     0
        libinput Left Handed Enabled Default (280):     0
        libinput Accel Speed (281):     1.000000
        libinput Accel Speed Default (282):     0.000000
        libinput Scroll Methods Available (286):        1, 1, 0
        libinput Scroll Method Enabled (287):   1, 0, 0
        libinput Scroll Method Enabled Default (288):   1, 0, 0
        libinput Click Methods Available (306): 1, 1
        libinput Click Method Enabled (307):    1, 0
        libinput Click Method Enabled Default (308):    1, 0
        libinput Middle Emulation Enabled (291):        0
        libinput Middle Emulation Enabled Default (292):        0
        libinput Send Events Modes Available (262):     1, 1
        libinput Send Events Mode Enabled (263):        0, 0
        libinput Send Events Mode Enabled Default (264):        0, 0
        libinput Disable While Typing Enabled (309):    1
        libinput Disable While Typing Enabled Default (310):    1
        Device Node (265):      "/dev/input/event16"
        Device Product ID (266):        2, 7
        libinput Drag Lock Buttons (293):       <no items>
        libinput Horizontal Scroll Enabled (294):       1

In general, I think it is easier to have your config in a single place. The exception is, of course, if multiple users of the system need different options. But, otherwise, I'd stick to xorg configuration *or* use configuration in your home *or* whatever. Otherwise, it becomes almost impossible to figure out what is going on. (Sometimes, it can't help but be complicated, but that should be forced on you rather than a preferred strategy!)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#9 2017-12-03 18:30:11

kjozsa
Member
Registered: 2008-06-05
Posts: 180

Re: Enabling 3-finger taps on HP touchpad with libinput

I do agree with you on the theory and don't claim I have a total clear understanding what's going on here either, but still:
- for this machine 2 touchpads are detected and loaded ("AlpsPS/2 ALPS GlidePoint" and "ALP0012:00 044E:120C") in spite of the obvious number of touchpad the laptop has (1) smile
- the first suspend/resume switches between the used configurations and if I disable any of the two, I won't have a working touchpad either before the first suspend or after, so appearently I have to configure both devices the way I want
- no matter how crazy that sounds, eg. with the Natural Scrolling setting for "AlpsPS/2 ALPS GlidePoint" the value 0 means up is up, and for "ALP0012:00 044E:120C" the value 1 means up is up.

Thanks for your config, I'll review it and keep on experimenting and report back if I could achieve 3-finger taps.

Offline

Board footer

Powered by FluxBB