Summary: | Logitech K400: double tap on touchpad is filtered by debouncing code | ||
---|---|---|---|
Product: | Wayland | Reporter: | 1762536 |
Component: | libinput | Assignee: | Wayland bug list <wayland-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | errolbury, peter.hutterer |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | other | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 106534 | ||
Attachments: |
lsusb output of the device
evemu-record of device recording of good and bad double-tappings |
Description
1762536
2018-04-10 16:12:03 UTC
Please attach an evemu-record of the device while doing a double-tap (one that's not recognised), thanks. Created attachment 138772 [details]
evemu-record of device
here the evmu-record of the device i made under ubuntu 18.04 daily-live.
i made:
3x a double tap on the touchpad of the device (not recognized as double click),
2x a double click by mouse buttons below the touchpad of the device (recognized as double click),
3x double tap on the touchpad again (not recognized as double click).
i tried to make as less movements as possible.
This device isn't recognised as touchpad by the kernel and just exposes a mouse emulation interface. Which means all we see is relative motion and button clicks, tapping is handled by the device's firmware. The only solution there would be to switch the touchpad to actual touchpad mode in the kernel. This requires knowing the magic sequence (if any exists), so far we haven't been able to do that. Either way, this is a kernel bug, once the touchpad appears like a normal touchpad, libinput will work with it. watchinf the content of the evemu-record the only different between double-tap on the touchpad and double-click on the mouse buttons i saw, is the timing. double-tap is way faster than the double-click. going back to ubuntu 18.04 daily-live is made sligktly slower double-tap on the touchpad with the result, that some of the slower double-taps were recognized as double-click. is there somewhere a kind of "debouncung"-algorithm that let the double-tap recognized as "bouncing" and is filtered out - so it is only seen as single-click... ? huh, indeed, I misread the request, thanks. Yes, debouncing kicks in here because the events are impossibly close together. So this is a libinput bug. Have a look at commit 3a3fd645c4a78ff85e66327d51c4262292c5b09a, you need a (new) LIBINPUT_MODEL_LOGITECH_K400 tag in the hwdb and its parsing, and that flag checked in fallback_init_debounce(). Should be a fairly simple patch, any chance you can work on it? you mean, i have to compile something in the kernel / lib? sorry, that is way above my skills. or are there a simple scripts and instructions i can use? This this particular patch would be easy even with little experience in C. But yes, you'd have to add a hwdb entry and build libinput for testing. https://wayland.freedesktop.org/libinput/doc/latest/udev_config.html#hwdb https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html Created attachment 138776 [details]
recording of good and bad double-tappings
i attached a recording of good and bad double-tappings (with comments, what is good and what failed).
maybe it will help a little bit to improve the handling.
it looks like there is a small window where it is recognized as double-click.
the tap must be bigger than 8ms but less than 368ms.
is the device kind of synthesizing those press/release events?
BTW: no, i can't compile my own libinput... sorry for that. :(
do you need something else i can easily provide? i only booting ubuntu 18.04 daily-live from DVD / NFS - i have no installation on hard disk of that version. commit 23614f75515ddb97089e2554a304aac3d951cff3 Author: Peter Hutterer <> Date: Fri Apr 13 08:57:05 2018 +1000 debounce: disable debouncing on the Logitech K400 https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html#fixed_bugs I'm responding to https://bugs.launchpad.net/ubuntu/+source/libinput/+bug/1762536/comments/11 and in particular https://bugs.launchpad.net/ubuntu/+source/libinput/+bug/1762536/comments/8 https://bugs.launchpad.net/ubuntu/+source/libinput/+bug/1762536/comments/10 I don't know where... but I recall seeing that this bug also affected LIBINPUT_MODEL_LOGITECH_K400+ so I--wrongly--assumed that this would also be included with this hwdb fix What additional input may I provide? this is the commit for my Logitech K400 https://cgit.freedesktop.org/wayland/libinput/commit/?id=23614f75515ddb97089e2554a304aac3d951cff3 i think you have to ad something like ... (EVDEV_MODEL_MS_NANO_TRANSCEIVER|EVDEV_MODEL_LOGITECH_K400|EVDEV_MODEL_LOGITECH_K400_PLUS) ... MODEL(LOGITECH_K400), MODEL(LOGITECH_K400_PLUS), ... EVDEV_MODEL_LOGITECH_K400 = (1 << 11), EVDEV_MODEL_LOGITECH_K400_PLUS = (1 << 13), ... # Logitech K400 libinput:mouse:input:b0003v046Dp4024* LIBINPUT_MODEL_LOGITECH_K400=1 # Logitech K400 + libinput:mouse:input:... LIBINPUT_MODEL_LOGITECH_K400_PLUS=1 ... but Peter Hutterer knows it better. i think at least you have to provide the ids of the Logitech K400+ (those in the header of evemu output) # EVEMU 1.3 ... # Input device name: "Logitech K400" # Input device ID: bus 0x03 vendor 0x46d product 0x4024 version 0x111 ... only in case you don't know how to get the ids... 1. to install evemu-tools to have evemu-record command available sudo apt install -y evemu-tools 2. execured the evemu-record command as root and redirect the output to a file sudo evemu-record > log-file.txt 3. enter the entry number of Logitech K400+ in the list 4. and then [Ctrl]+[C] to abord the logging to the file. 5. the log-file should contain the ids needed for the fix. see this commit here: https://cgit.freedesktop.org/wayland/libinput/commit/?id=6dcdfdd513fd8158bc7bacbad8c5c8ba987565a0 but this commit is not in the 1.10-branch and hasn't been released. So either ubuntu ships it separately or you wait until it either ends on 1.10.8 (unlikely I'lll have the time to do that though) or until they update to 1.11. If it's a different device, just add a line in the form of libinput:mouse:input:b0003v046Dp404C* where you replace 404C with the product ID of your device. Uppercase hex or it won't work. https://wayland.freedesktop.org/libinput/doc/latest/udev_config.html#hwdb has more info on how to do all this. but this looks to be a ubuntu bug now, they just need to update the package. closing again, because the K400+ is listed as one of the device in this commit. *** Bug 106720 has been marked as a duplicate of this bug. *** |
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.