Bug 97355

Summary: Elantech touchpad feels imprecise using libinput driver
Product: xorg Reporter: leosanvieira
Component: Input/libinputAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: andrebrait, peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 98839    
Bug Blocks: 98535    
Attachments:
Description Flags
Touchpad recording none

Description leosanvieira 2016-08-15 16:22:45 UTC
I have an Asus S46CB laptop with an Elantech touchpad. 

As an Arch Linux Gnome user and since Gnome now only supports the libinput driver, i have decided to give it a try, but using this driver makes my touchpad feels rather imprecise, i tried changing the speed settings but couldn't find one that felt as good as when using synpatics driver.

Below is the result of "libinput-list-devices" command.

Device:           ETPS/2 Elantech Touchpad
Kernel:           /dev/input/event11
Group:            8
Seat:             seat0, default
Size:             101.88x56.03mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a
Comment 1 Peter Hutterer 2016-08-18 05:45:14 UTC
Can you specify what you mean by "imprecise"?
Comment 2 leosanvieira 2016-08-18 13:59:24 UTC
There's a lack of accuracy, i am not able to precisely point objects, and no matter the speed i configure it, it's pointer either moves too fast or too slow. Sorry for the lack of technical terms but it's kind difficult to describe it as it's a more of a feel.
Comment 3 André Brait 2016-09-27 16:10:23 UTC
I can confirm that it happens. And it's bad.

Currently running Arch, using the latest libinput driver available. I've run into this with any distro that uses libinput by default.

The cursor is either too slow or too fast.

It's impossible to move it just a little bit. Any movement makes it run faster than it should. Reducing the acceleration to some negative number just makes it go slow on wide movements. On small, precise movements it's always too fast.

There's currently no support for some highly important settings present in the Synaptics driver, such as:

* FingerLow and FingerHigh pressure configuration, which can correct accidental clicks in several touchpads (it's impossible to work without setting those to a value higher than the default. The computers also displays erratic behavior on Windows but FingerLow and FingerHigh make it possible to fix this on Linux)
* Minimum cursor speed and maximum cursor speed: these are much more relatable to this bug and need to be implemented ASAP. The current lack of ability to set these values is what makes the touchpad feel extremely imprecise.

I can provide any kind of info that should be needed to fix this.
Comment 4 Thomas Bohn 2016-09-27 21:01:00 UTC
My touchpad is from an Asus UX360CA, identifies itself as ELAN1200. And my biggest issue is that an initial touch on the touchpad is recognized as click, something I could see with libinput-debug-events.

libinput-list-devices has this output:

Device:           ELAN1200:00 04F3:301A Touchpad
Kernel:           /dev/input/event14
Group:            5
Seat:             seat0, default
Size:             103.23x70.90mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a

And while it says that tap-to-click is disabled it isn't via this Xorg config:

Section "InputClass"
        Identifier "touchpad"
        MatchIsTouchpad "yes"
        MatchDevicePath "/dev/input/event14"
        Option "Tapping" "yes"
        Option "NaturalScrolling" "yes"
        Option "DisableWhileTyping" "yes"
EndSection
Comment 5 Thomas Bohn 2016-09-28 00:07:32 UTC
(In reply to Thomas Bohn from comment #4)

> Section "InputClass"
>         MatchDevicePath "/dev/input/event14"
> EndSection

My issue which I thought was connected to the one describe in the bug was actually the result of a bad config file. Sorry.

Which doesn't mean I didn't experience the bug, I did, and the rest happened while I was trying to fix the issue.
Comment 6 Thomas Bohn 2016-09-30 15:17:47 UTC
Today, I got xf86-input-libinput 0.20 and since then my touchpad reacts much better and nicer then before, and the symptoms describe here are no longer present. Maybe the others could try and and comment about their experiences.
Comment 7 leosanvieira 2016-09-30 19:21:33 UTC
Yes, after xf86-input-libinput was upgraded to 0.20, it's behaviour improved a lot, i've been using for a couple of hours by now and i have no more complaints.
Comment 8 André Brait 2016-10-12 10:57:18 UTC
I upgraded to 0.20 a few days ago and disabled the synaptics drivers. I can confirm I'm using libinput now and tought it got better, it's still to imprecise for me. Nowhere near the precision I get on the synaptics driver. Since libinput doesn't expose the settings I would need to change for it to feel alright (namely, Noise Cancellation, FingerLow and FingerHigh, MinSpeed and MaxSpeed), I went back to using synaptics. IMHO libinput can't be considered ready to replace the synaptics touchpad driver while it doesn't expose comparable configuration options for basic functions like these.
Comment 9 Peter Hutterer 2016-10-13 00:09:32 UTC
(In reply to leosanvieira from comment #7)
> Yes, after xf86-input-libinput was upgraded to 0.20, it's behaviour improved
> a lot, i've been using for a couple of hours by now and i have no more
> complaints.

that's... odd. I can't remember any touchpad pointer accel code going in. but glad it works now :)

(In reply to André Brait from comment #8)
> I upgraded to 0.20 a few days ago and disabled the synaptics drivers. I can
> confirm I'm using libinput now and tought it got better, it's still to
> imprecise for me. Nowhere near the precision I get on the synaptics driver.
> Since libinput doesn't expose the settings I would need to change for it to
> feel alright (namely, Noise Cancellation, FingerLow and FingerHigh, MinSpeed
> and MaxSpeed), I went back to using synaptics. IMHO libinput can't be
> considered ready to replace the synaptics touchpad driver while it doesn't
> expose comparable configuration options for basic functions like these.

https://who-t.blogspot.com.au/2016/09/synaptics-pointer-acceleration.html
the configuration options are mostly random number generators, so for obvious reasons I don't want them in libinput. there are still rough plans to investigate why things are different, but I don't have enough data yet.
Comment 10 leosanvieira 2016-10-13 02:01:35 UTC
Just to be clear, although i've said it has improved a lot, that only means that now it's good enough. The pointer speed is still faster than i'd like it to be but now i can use it normally and it behaves much like when i'm using windows, but even so i went back to synaptics, because i still think it works better.
Comment 11 André Brait 2016-10-13 02:15:26 UTC
(In reply to Peter Hutterer from comment #9)
> (In reply to leosanvieira from comment #7)
> > Yes, after xf86-input-libinput was upgraded to 0.20, it's behaviour improved
> > a lot, i've been using for a couple of hours by now and i have no more
> > complaints.
> 
> that's... odd. I can't remember any touchpad pointer accel code going in.
> but glad it works now :)
> 
> (In reply to André Brait from comment #8)
> > I upgraded to 0.20 a few days ago and disabled the synaptics drivers. I can
> > confirm I'm using libinput now and tought it got better, it's still to
> > imprecise for me. Nowhere near the precision I get on the synaptics driver.
> > Since libinput doesn't expose the settings I would need to change for it to
> > feel alright (namely, Noise Cancellation, FingerLow and FingerHigh, MinSpeed
> > and MaxSpeed), I went back to using synaptics. IMHO libinput can't be
> > considered ready to replace the synaptics touchpad driver while it doesn't
> > expose comparable configuration options for basic functions like these.
> 
> https://who-t.blogspot.com.au/2016/09/synaptics-pointer-acceleration.html
> the configuration options are mostly random number generators, so for
> obvious reasons I don't want them in libinput. there are still rough plans
> to investigate why things are different, but I don't have enough data yet.

Can I provide any information that would help?
Comment 12 Peter Hutterer 2016-10-13 02:55:15 UTC
> Can I provide any information that would help?

yes, but I'm still trying to figure out what exactly to collect so I have reliable data sets. a few more days, sorry
Comment 13 Peter Hutterer 2016-11-09 02:17:10 UTC
Ok, one request here so I do at least some evaluation:
https://lists.fedoraproject.org/archives/list/desktop@lists.fedoraproject.org/thread/CUW3IGXUEYATA7GNZMSF5TV5MSO2AUKV/
The attachment will likely be too big for bugzilla, so please put it somewhere else and send me the link.
Comment 14 leosanvieira 2016-11-11 18:31:15 UTC
Created attachment 127918 [details]
Touchpad recording
Comment 15 leosanvieira 2016-11-11 18:34:47 UTC
Comment on attachment 127918 [details]
Touchpad recording

Here's the recording as asked, i hope it's enough. Feel free to ask me if you need anything else.
Comment 16 Peter Hutterer 2016-12-06 05:00:41 UTC
follow-up questions: do you use tapping? do you use clickfinger or software button areas for physical clicks? and which scroll method do you use? twofinger or edge?
Comment 17 leosanvieira 2016-12-09 11:39:14 UTC
I use tapping, two buttons software button areas for physical clicks and for scrolling, i use the two finger method.
Comment 18 Peter Hutterer 2016-12-21 03:18:57 UTC
See bug 98535, please try libinput master and report back whether this improves things. Thanks
Comment 19 leosanvieira 2016-12-23 16:31:08 UTC
Yes, it's improved again, very much usable now but still a bit imprecise with small movements like when selecting text, for example.

Just so you known, i installed Arch Linux aur git packages libinput-git and xf86-input-libinput-git so i could try it with X and Wayland and had the same results with both.
Comment 20 Mike weiss 2017-09-14 05:29:08 UTC
I am experience this issue aswell (Have an Elantech Touchpad in an Acer CB3-431 laptop)


With Synaptic driver I can circle my cursor around in a very small circle, around a character like'V' on the screen for example. With Libinput I can't, it ends up being a very messed up circle. 

Using my touchpad with libinput just doesn't feel right, it makes using my laptop feel unstable, I find myself going to back to X even though I want to be in Wayland very badly.

I'm running Arch linux and can try and test any changes that are made or perform tests. Let me know. Thanks for all the hard work that you do.
Comment 21 bjoern 2017-10-30 15:50:10 UTC
(In reply to Mike weiss from comment #20)
> I am experience this issue aswell (Have an Elantech Touchpad in an Acer
> CB3-431 laptop)
> 
> 
> With Synaptic driver I can circle my cursor around in a very small circle,
> around a character like'V' on the screen for example. With Libinput I can't,
> it ends up being a very messed up circle. 
> 
> Using my touchpad with libinput just doesn't feel right, it makes using my
> laptop feel unstable, I find myself going to back to X even though I want to
> be in Wayland very badly.
> 
> I'm running Arch linux and can try and test any changes that are made or
> perform tests. Let me know. Thanks for all the hard work that you do.

Could your problem be to related to this issue #99410 ?
Comment 22 Peter Hutterer 2017-10-30 23:55:03 UTC
Most likely the hysteresis, see bug 98839
Comment 23 André Brait 2018-06-21 13:58:45 UTC
Whatever it was, Peter, was completely fixed in 11.1.

Tell me if you think I should close this bug. I feel like I should. I've tested 11.1 in Fedora and it's completely fixed.
Comment 24 Peter Hutterer 2018-06-21 23:00:50 UTC
Oki, closing then. Thanks for testing and letting me know.

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.