Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1247257 - Pointer moves too fast for small adjustments (cf. Synaptics driver)
Summary: Pointer moves too fast for small adjustments (cf. Synaptics driver)
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: libinput
Version: 22
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-07-27 16:18 UTC by Richard Geary
Modified: 2016-07-19 17:12 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-19 17:12:49 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
evemu-record events attached, moving across the screen to hover over some text. (44.46 KB, text/plain)
2015-07-27 16:18 UTC, Richard Geary
no flags Details

Description Richard Geary 2015-07-27 16:18:56 UTC
Created attachment 1056680 [details]
evemu-record events attached, moving across the screen to hover over some text.

Description of problem:
Compared to the Synaptics driver, the pointer movement for precise (small) adjustments is too sensitive.  I regularly overshoot the target and take significantly longer than with the Synaptics driver to put the cursor on the target.
Adjusting the mouse sensitivity lower doesn't help, as larger scale movements become too cumbersome.
Perhaps (I'm guessing) the default cursor acceleration needs adjusting.  I can't find any options for this in gnome.
I expected the behaviour to be comparable to the Synaptics driver

Version-Release number of selected component (if applicable):
libinput-0.20-3-fc22.x86_64

How reproducible:
All the time 

Steps to Reproduce:
1. Using Elan touchpad, with mouse sensitivity set to about 15%, try moving the cursor across half a screen to point to some text.
2.
3.

Actual results:
Cursor moves too far for small slow movements on the touchpad

Expected results:
Same feel as Synaptics driver

Additional info:

Comment 1 Peter Hutterer 2015-07-27 23:50:24 UTC
I wonder: what's the physical size of your touchpad in mm?

Comment 2 Richard Geary 2015-07-28 03:33:53 UTC
It's 108mm x 75mm

Comment 3 Richard Geary 2015-08-02 01:37:28 UTC
libinput-list-devices reports it as 105.16mm x 73.61mm

Comment 4 Peter Hutterer 2015-08-03 05:30:34 UTC
fwiw, that's a simple rounding error, our resolution is integers for units/mm, yours seems to be closer to 30 u/mm than the 31 the touchpad sets. No big deal, the 3mm shouldn't make much of a difference

Comment 5 Richard Geary 2015-08-23 15:59:53 UTC
Is there any pointer acceleration/deceleration turned on by default?  If it's available, how would I tweak the acceleration settings to improve this?

Comment 6 Peter Hutterer 2015-08-24 06:00:41 UTC
yeah, we have acceleration for all devices, some documentation and diagrams are here: http://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html

touchpads generally have the same acceleration as mice, but they're slowed down since finger movement is less fine-grained than hand movement with a mouse.

if you're using GNOME, the touchpad speed toggle should adjust the speed, if that doesn't work for some reason, the "libinput Accel Speed" property takes a range of [-1, 1]

Comment 7 Richard Geary 2015-08-25 03:13:31 UTC
How do I find what dpi libinput sees my device as having?
Do you know what graph shape the Synaptics driver uses for acceleration?  It feels better than libinput (on my Elan touchpad)

Incidentally, have you seen this article before?
http://web.archive.org/web/20070710230602/http://www.microsoft.com/taiwan/whdc/device/input/pointer-bal.mspx

Unfortunately I can't find the graphs.

Comment 8 Richard Geary 2015-08-25 04:28:06 UTC
How do I get & set "libinput Accel Speed"?  At a guess, I looked at xinput list-props #, but I don't see any libinput references.  This is my trackpad :

$ xinput list-props 6
Device 'xwayland-pointer:10':
        Device Enabled (111):   1
        Coordinate Transformation Matrix (113): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (234):     0
        Device Accel Constant Deceleration (235):       1.000000
        Device Accel Adaptive Deceleration (236):       1.000000
        Device Accel Velocity Scaling (237):    10.000000


I want to emphasise this bug.  The Elan touchpad is almost unusable on libinput, because it is so hard to control the cursor for precise movements.

Comment 9 Peter Hutterer 2015-08-25 07:27:30 UTC
oh. xwayland-pointer, so you're running through Xwayland. that changes things... I'm wondering if that is the cause of it all, do you see all the same issues when you're in a normal X session?

[sorry, about to sign off, so all I can do today is request that you test with a normal X session and the xorg-x11-drv-libinput driver]

Comment 10 Richard Geary 2015-08-31 02:58:58 UTC
It doesn't change it, I still regularly overshoot what I'm aiming for.  It feels slightly different though, maybe a bit better.

I notice the accel was set to -0.668.  Presumably this is to reduce the impact of fast movements? 

You should add to the docs how to change the values, I had to dig around in xinput.  Tweaking it, I can't get the touchpad behaviour that I have on windows & synaptics.  I guess it's a more complicated problem than can be solved with 1 accel parameter.

It would be nice if libinput could draw a little graph in the corner of the screen with the X & Y touchpad velocity vs the implied cursor pixel velocity - drawing the effective response graph.  And then you could tweak the curve once you know where on it your problem lies.
I know you said that Synaptics driver code is a mess, but is there a way to extract from synaptics the raw x/y touchpad diffs & the raw x/y cursor diffs and draw their curve from that?  Even if just for research purposes?

Comment 11 Peter Hutterer 2015-08-31 04:40:34 UTC
(In reply to Richard Geary from comment #10)
]> I notice the accel was set to -0.668.  Presumably this is to reduce the
> impact of fast movements? 

no, the libinput defaults are the same and the gnome default is usually 0.0. So either you adjusted this in the past or something else has set this at some point.

> It would be nice if libinput could draw a little graph in the corner of the
> screen with the X & Y touchpad velocity vs the implied cursor pixel velocity
> - drawing the effective response graph.  And then you could tweak the curve
> once you know where on it your problem lies.

libinput doesn't actually have access to the screen, it would have to be a separate utility that does this but then that won't have access to the pointer acceleration algorithm, only to the speed toggle.

> I know you said that Synaptics driver code is a mess, but is there a way to
> extract from synaptics the raw x/y touchpad diffs & the raw x/y cursor diffs
> and draw their curve from that?  Even if just for research purposes?

not really, because, and I'm not kidding here, the synaptics pointer acceleration feeling depends on screen resolution... which is a bug, but it's difficult to fix because now as soon as we touch it we get users complain that the pointer acceleration doesn't work like they want it to anymore :)

Comment 12 Richard Geary 2015-09-04 01:56:21 UTC
> no, the libinput defaults are the same and the gnome default is usually 0.0. So either you adjusted this in the past or something else has set this at some point.

Gnome touchpad settings don't have an acceleration slider, just cursor speed.

>libinput doesn't actually have access to the screen, it would have to be a separate utility that does this but then that won't have access to the pointer acceleration algorithm, only to the speed toggle.

Yes, sorry I meant it would be a helpful separate utility.  You shouldn't need access to the acceleration algorithm code.  What I was describing is it could draw a scatter plot of finger speed vs cursor speed, and the resulting image *is* the acceleration algorithm in visual form.  But that assumes that the finger speed is the only input to libinput's acceleration algorithm.

> not really, because, and I'm not kidding here, the synaptics pointer acceleration feeling depends on screen resolution... which is a bug, but it's difficult to fix because now as soon as we touch it we get users complain that the pointer acceleration doesn't work like they want it to anymore :)

<opinion> I bet that 99% of real (non-complaining) users have something like 1600x900 or 1920x1080.  But regardless, synaptics ballistics is much more consistent with every other OS touchpad feel. Libinput feels outdated here; I'm suggesting ways you, or users, could do some research to quantify what I'm saying. </opinion>

Comment 13 Peter Hutterer 2015-10-14 01:47:00 UTC
sorry for the late answer, was on a work trip, then vacation.

(In reply to Richard Geary from comment #12)
> Gnome touchpad settings don't have an acceleration slider, just cursor speed.

note that that slider sets the accel property. there's some conflict with the terms going on, but that slider maps 1:1 to the property.

> Yes, sorry I meant it would be a helpful separate utility.  You shouldn't
> need access to the acceleration algorithm code.  What I was describing is it
> could draw a scatter plot of finger speed vs cursor speed, and the resulting
> image *is* the acceleration algorithm in visual form.  But that assumes that
> the finger speed is the only input to libinput's acceleration algorithm.

it is, we don't use pressure or anything else. The diagrams here map the input speed to the output speed. More or less anyway, it'd be trivial to go from the accel factor to the actual output speed.
http://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html
in the libinput repo, there's a ptraccel-debug tool that can generate those input speed vs output speed graphis (gnuplot format).

> <opinion> I bet that 99% of real (non-complaining) users have something like
> 1600x900 or 1920x1080.

I think the spread is a bit wider than that but not that much. the synaptics accel code hasn't changed in years, so you'll need to factor in 5-year old laptops. but I get your point. I think the main reason why people don't notice much is because the aspect ratio of the touchpads is quite similar to that of the screen, only when the screen doubles does it become really obvious that the movement speed isn't consistent across horiz/vert.

> But regardless, synaptics ballistics is much more
> consistent with every other OS touchpad feel. Libinput feels outdated here;
> I'm suggesting ways you, or users, could do some research to quantify what
> I'm saying. </opinion>

I have a OS X machine here that has a really good feel to the touchpad. To me that's somewhat the gold standard. libinput is closer to this on the T440 that synaptics, but that's also in part because the touchpad hardware is better on the Apple device. So yeah, still trying to improve things, but I've got a lot on my slate right now.

Comment 14 Fedora End Of Life 2016-07-19 17:12:49 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.