Bug 96587

Summary: Touchpad feels too sensitive, which makes cursor randomly jump when moving a finger
Product: Wayland Reporter: gim
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: medium CC: gim, nate, peter.hutterer
Version: 1.3.0   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: evemu-record output

Description gim 2016-06-19 08:55:04 UTC
Created attachment 124601 [details]
evemu-record output

My touchpad, with libinput enabled, feels too sensitive in a way that even a slight movement of my finger affects cursor position. That makes touchpad extremely uncomfortable to use because when I move my finger a cursor makes annoying jumpy movements in the process which makes precise cursor movements almost unachievable.

* Down below you can see one part of `libinput-debug-events` output. I was moving my finger diagonally up and right, but you can see that libinput detects negative x acceleration. I believe in this moment there is a significant cursor jump.

event16	POINTER_MOTION   +23.98s	  3.44/ -1.91
event16	POINTER_MOTION   +24.01s	  3.20/ -2.03
event16	POINTER_MOTION   +24.02s	  0.98/ -1.52
event16	POINTER_MOTION   +24.03s	 -2.83/ -0.76
event16	POINTER_MOTION   +24.06s	 -3.94/ -0.51
event16	POINTER_MOTION   +24.07s	 -1.48/ -0.51
event16	POINTER_MOTION   +24.08s	  2.34/ -0.51
event16	POINTER_MOTION   +24.10s	  3.81/ -0.51

I've also added evemu-record output as attachment in case that helps at all.

* OS: Arch Linux
* libinput: 1.3.2
* `touchpad-edge-detector` results:
Touchpad ETPS/2 Elantech Touchpad on /dev/input/event16
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [0..3260], y [0..2282]
Touchpad sends:	x [0..3260], y [0..2282]
Comment 1 gim 2016-06-19 09:12:08 UTC
I've recorded a small video with `libinput-debug-events` output in the background: https://db.tt/Ssey3uNt
Comment 2 Peter Hutterer 2016-06-20 01:29:01 UTC
any chance you can give git master a try? we just reassigned the hysteresis back to all touchpad devices and that should take the jumpiness out
Comment 3 gim 2016-06-20 05:08:52 UTC
(In reply to Peter Hutterer from comment #2)
> any chance you can give git master a try? we just reassigned the hysteresis
> back to all touchpad devices and that should take the jumpiness out

Hi. I just installed `libinput-git` package from AUR, that fetches sources directly from git master branch, and it seems to work correctly now. Thank you!
Comment 4 Peter Hutterer 2016-06-20 05:10:21 UTC
excellent, thanks. I'll close this bug then
Comment 5 gim 2016-06-20 11:08:37 UTC
(In reply to Peter Hutterer from comment #4)
> excellent, thanks. I'll close this bug then

Diagonal cursor movement is not very smooth though, it "sticks" to x or y axis. Is this issue known?
Comment 6 Peter Hutterer 2016-06-20 21:43:52 UTC
grab mtview from the repo below. compile it and run it as root against your touchpad event node. It's like a painting app, can you see the odd movement reflected here. This will help determine if it's a touchpad issue or a userspace issue

https://github.com/whot/mtview
Comment 7 Nate Graham 2016-12-29 18:49:16 UTC
FYI with hysteresis on, my hardware also makes small diagonal movements almost impossible. It's one of the many reasons I disabled hysteresis (and think it should be user-configurable). Hardware is all different.
Comment 8 Peter Hutterer 2016-12-29 23:41:53 UTC
if it works correctly with the hysteresis off then it's a bug in the implementation in libinput. I won't have time to look at this until the new year though but feel free to figure out what's going on :)
Comment 9 Nate Graham 2016-12-30 01:35:15 UTC
Well... the bug is hysteresis. :) Some touchpads (e.g. mine) don't need it at all, and are worsened by any implementation of it. I've covered this in https://bugs.freedesktop.org/show_bug.cgi?id=98839.
Comment 10 Peter Hutterer 2017-01-04 07:00:51 UTC
Nate: in your case the issue is slightly different. The hysteresis is required for touchpads that don't do firmware filtering. What happens in your case is that the firmware does too much filtering, so the hysteresis is just doubled up.

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.