Bug 95514

Summary: enable click and tap on logitech K400 plus touchpad keyboard
Product: Wayland Reporter: Stefano <galaxy73.it>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: 1.3.0   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: logitech K400 plus tap-and-click evemu-record log

Description Stefano 2016-05-21 01:49:46 UTC
I've recently moved to libinput from synaptic, as I am using Gnome 3.20 and synaptics drivers aren't supported anylonger.
The internal touchpad is working without issues (tap and click, two finger scrolling and two finger simulate right button), but the external touchpad (integrated in the logitech K400 keyboard), that used to work in the same way as the internal touchpad, now has tap and click disabled.
two finger scrolling works.
Please help me re-enabling tap and click on the Logitech K400 Plus keyboard.

My system is arch linux: 
4.5.4-1-ARCH #1 SMP PREEMPT Wed May 11 22:21:28 CEST 2016 x86_64 GNU/Linux

xorg.d/90-libinput.conf:
# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "1"
EndSection

Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

output from libinput-list-devices:
Device:           Power Button
Kernel:           /dev/input/event2
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Video Bus
Kernel:           /dev/input/event3
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Sleep Button
Kernel:           /dev/input/event1
Group:            3
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           USB 2.0 Camera
Kernel:           /dev/input/event9
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Logitech K400 Plus
Kernel:           /dev/input/event10
Group:            5
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat*adaptive

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event4
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event11
Group:            7
Seat:             seat0, default
Size:             81.61x41.97mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    none
Disable-w-typing: enabled
Accel profiles:   none


Output from xinput -list-props 10 (which is the logitech pointer device):
Device 'Logitech K400 Plus':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Accel Speed (278):	-0.272059
	libinput Accel Speed Default (279):	0.000000
	libinput Accel Profiles Available (280):	1, 1
	libinput Accel Profile Enabled (281):	1, 0
	libinput Accel Profile Enabled Default (282):	1, 0
	libinput Natural Scrolling Enabled (283):	0
	libinput Natural Scrolling Enabled Default (284):	0
	libinput Send Events Modes Available (262):	1, 0
	libinput Send Events Mode Enabled (263):	0, 0
	libinput Send Events Mode Enabled Default (264):	0, 0
	libinput Left Handed Enabled (285):	0
	libinput Left Handed Enabled Default (286):	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):	274
	libinput Middle Emulation Enabled (292):	0
	libinput Middle Emulation Enabled Default (293):	0
	Device Node (265):	"/dev/input/event10"
	Device Product ID (266):	1133, 16461
	libinput Drag Lock Buttons (294):	<no items>
	libinput Horizonal Scroll Enabled (267):	1


I reckon it has to be as simple as switching an option in xorg.conf on or a touchpad setting in xinput, but I can't figure out what option is..
Thank you in advance for your support!
Comment 1 Peter Hutterer 2016-05-24 02:58:24 UTC
Please attach an evemu-record of the k400 with a short tapping sequence, thanks.
Comment 2 Stefano 2016-05-27 00:01:07 UTC
Created attachment 124118 [details]
logitech K400 plus tap-and-click evemu-record log

Sorry for the delay. here is a evemu-record log with the tap sequence on my k400 plus.
the sequence is:
- single finger tap
- two fingers tap
- three fingers tap
- four fingers tap

thanks for any help!
Comment 3 Stefano 2016-05-27 00:01:24 UTC
Sorry for the delay. here is a evemu-record log with the tap sequence on my k400 plus.
the sequence is:
- single finger tap
- two fingers tap
- three fingers tap
- four fingers tap

thanks for any help!
Comment 4 Peter Hutterer 2016-05-27 08:43:33 UTC
this isn't a libinput issue and I wonder whether this ever worked in synaptics because this thing doesn't actually look like a touchpad (and never has, if my memory serves me right because we never figured out the magic sequence to switch it to touchpad mode).

the device looks like a normal mouse (REL_X, REL_Y) rather than touchpads' absolute ABS_X/ABS_Y or ABS_MT_POSITION_X/ABS_MT_POSITION_Y on multitouch-capable devices. since these trigger the ID_INPUT_TOUCHPAD udev tag that we use to match for synaptics I doubt this device was ever synaptics-controlled. evdev would've been the fallback but it doesn't support tapping. so yeah, I doubt this really ever worked as a touchpad.

note that in the evemu output you posted there are no tapping events, only the ctrl+c to cancel evemu is visible.

so basically: this device works as expected, though it doesn't work like a touchpad because we don't have the magic codes to make it look like a touchpad and thus rely on the firmware.
Comment 5 Stefano 2016-05-27 09:44:07 UTC
I can guarantee that it used to work on my arch linux as touchpad with xf86-input-synaptics driver, with the same functionalities as the internal touchpad (tap-and-click, pinch and two finger scrolling).
It stopped working about two weeks ago, after I've upgraded gnome to 3.20.
Thank you for your assistance, anyway. it was worth to try ;)
Best,
S
Comment 6 Peter Hutterer 2016-05-27 09:47:44 UTC
Try to find out which kernel it worked with, because right now with how the kernel presents this device it cannot work with either libinput nor synaptics. You can easily check that by installing xf86-input-evdev and xf86-input-synaptics and removing xf86-input-libinput before restarting X.
Comment 7 Stefano 2016-06-02 01:10:49 UTC
Foud the solution in a logitech forum..
actually this keyboard has a known bug and the tap-an-click got randomly disabled when the device is waking up from idle status.
To toggle tap-an-click I had to quick press "fn (function key) + left click button (on touchpad)". that's it! no problems with libinput actually.
I've already got pinch to zoom and two finger scroll (horiz and vert) working and suspect that also the three finger tap or swipe is recognized because if I place three fingers on the thouchpad and try to swap, the cursor doesn't move.

Thank you guys for your time!
I am marking this as resolved
S

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.