Bug 102306 - Distinguish between two-finger scrolling and pinch
Summary: Distinguish between two-finger scrolling and pinch
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-19 00:40 UTC by Talin
Modified: 2017-08-23 05:58 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Talin 2017-08-19 00:40:03 UTC
I've been trying to figure out for a long time why using a touchpad on linux is so frustrating and painful for me, while using the same exact hardware on Windows, or the touchpad on a MacBook air, is not nearly so bad. And I think it has to do with the way two-finger scrolling is detected and handled.

Because I've been using laptops for so long (my first "portable" was a KayPro in 1984), and because of the way I was taught to type in high school in the early 70s, I have a set of life-long habits about the way that I hold my hands over a keyboard, resting my wrists against the surface of the laptop below the keyboard. And in particular, I find it almost impossible to prevent my thumbs from inadvertently brushing against the trackpad every few seconds when I am using my index finger to position the pointer.

As a result, whenever I try to position the pointer to click on a window tab or button, I find that a large fraction of the time I end up accidentally scrolling or dragging the window instead of moving the pointer. And try as I might, I cannot seem to break these unconscious habits. (And as laptops feature larger and larger trackpads this problem has only gotten worse.)

(For the same reason, I always disable tap-to-click and only buy laptops that have physical, moving touchpad buttons.)

I've tried turning off two-finger scrolling entirely, but modern OS's are built such that they are almost unusable without it; without a mouse to accurately point, trying to use hidden scrollbars is onerous at best.

So the question is, why don't I have this same trouble on other operating systems? And I think the answer is because the other OS's are able to recognize a 'pinch' gesture as distinct from a two-finger scroll.

Typically what happens is that when I unconsciously let my thumb relax and hit the touch pad, my index finger is moving but my thumb is not. So the space between the two touch points is not constant. If this were a mobile device, this would be interpreted as a zoom gesture, but this is a laptop, and so the 'pinch' gesture is ignored, and instead is interpreted as a normal pointer-move event, rather than a two-finger scroll event.

Effectively this means that on Windows, the gesture is interpreted the way I intend it to regardless of whether my thumb is on the trackpad or not.

So my request would be to add a synclient option to enable pinch detection, and allow it to be mapped to a plain pointer move instead of a zoom or scroll.
Comment 1 Peter Hutterer 2017-08-21 06:00:47 UTC
basically: synaptics doesn't do gestures beyond 2 finger-scrolling and it's multi-touch capabilities are a bit messy for historical reasons. It's also in maintenance mode and few updates are expected to be added.

At this point I recommend using xf86-input-libinput instead and trying that out, it's under active development, has better multitouch and thumb/palm detection support and the architecture that we can add special cases where it is required.

I'll leave this bug open in case someone wants to have a go at it, but don't put any big hopes on this. If you have similar issues under libinput, please file a bug against it and we can take it from there.
Comment 2 Talin 2017-08-23 01:49:28 UTC
OK, installing the libinput driver turned out to be fairly painless on ubuntu zesty. I see that with the default configuration it considers a pinch gesture to be a two fingered scroll; I'd like it to either ignore the pinch, or (better) treat it as a one-finger drag.
Comment 3 Peter Hutterer 2017-08-23 05:58:17 UTC
> I'd like it to either ignore the pinch, or (better) treat it as a one-finger drag.

you can't ignore gestures, but we can figure out what the exact trigger is and make detection better. Please file a bug against libinput and we'll see to it from there. Ideally attach an evemu-record sequence of such a pinch so we can figure out what's going on.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.