Bug 94911

Summary: MacBook Air Mid 2011 too eager to detect thumbs
Product: Wayland Reporter: tensor5
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED WONTFIX QA Contact:
Severity: major    
Priority: medium CC: peter.hutterer
Version: 1.2.x   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 99355, 100309    
Bug Blocks:    
Attachments: From bottom edge
From left edge
From right edge

Description tensor5 2016-04-13 01:01:15 UTC
Moving up from the bottom edge of the touchpad causes the arrow to freeze, and requires lifting the finger from the touchpad to resume normal function. This happens both with Gnome on Wayland and X11 with xf86-input-libinput. Not an issue on X11 with evdev.
Comment 1 Peter Hutterer 2016-04-13 04:41:07 UTC
which click method do you have enabled? software buttons? if so, that's a feature to avoid movement within the software buttons.

xinput list-props should tell us
Comment 2 tensor5 2016-04-13 05:37:27 UTC
I use multifinger, it's the default.

I also notice the same freeze when slowly moving from left or right edges towards the center. Starting from the top does not cause the freeze.
Comment 3 Peter Hutterer 2016-04-14 00:08:54 UTC
attach the output of xinput list <device name> please (under X, obviously :) and the evemu-record from such a sequence. For the left/right edge movement, if it's slow enough I suspect that may be palm detection kicking in.

https://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html
Comment 4 tensor5 2016-04-14 06:30:22 UTC
Created attachment 122918 [details]
From bottom edge
Comment 5 tensor5 2016-04-14 06:31:06 UTC
Created attachment 122919 [details]
From left edge
Comment 6 tensor5 2016-04-14 06:31:36 UTC
Created attachment 122920 [details]
From right edge
Comment 7 tensor5 2016-04-14 06:32:03 UTC
This is xinput list-props:

Device 'bcm5974':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (274):	0
	libinput Tapping Enabled Default (275):	0
	libinput Tapping Drag Enabled (276):	1
	libinput Tapping Drag Enabled Default (277):	1
	libinput Tapping Drag Lock Enabled (278):	0
	libinput Tapping Drag Lock Enabled Default (279):	0
	libinput Accel Speed (280):	-0.565919
	libinput Accel Speed Default (281):	0.000000
	libinput Natural Scrolling Enabled (282):	1
	libinput Natural Scrolling Enabled Default (283):	0
	libinput Send Events Modes Available (258):	1, 1
	libinput Send Events Mode Enabled (259):	0, 0
	libinput Send Events Mode Enabled Default (260):	0, 0
	libinput Left Handed Enabled (284):	0
	libinput Left Handed Enabled Default (285):	0
	libinput Scroll Methods Available (286):	1, 1, 0
	libinput Scroll Method Enabled (287):	1, 0, 0
	libinput Scroll Method Enabled Default (288):	1, 0, 0
	libinput Click Methods Available (289):	1, 1
	libinput Click Method Enabled (290):	0, 1
	libinput Click Method Enabled Default (291):	0, 1
	libinput Disable While Typing Enabled (292):	1
	libinput Disable While Typing Enabled Default (293):	1
	Device Node (261):	"/dev/input/event9"
	Device Product ID (262):	1452, 585
	libinput Drag Lock Buttons (294):	<no items>
	libinput Horizonal Scroll Enabled (263):	1
Comment 8 Peter Hutterer 2016-04-15 04:50:20 UTC
ok, easy explanation: look at the thumb detection section here:
https://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html

a slow move from the far bottom triggers the thumb. the two sections are 8mm and 15mm off the bottom edge. And the left/right edge is the palm detection kicking in, also explained on that page.
Comment 9 tensor5 2016-04-15 14:12:08 UTC
I see, thank you for the feedback.
Is it possible to change this behavior, or make it configurable? Thumb detection is particularly annoying because older MacBook's touchpad are built in such a way that the bottom part is the easiest to click on, so that's where the finger would be most of the time.
Also this is inconsistent with what happens on OSX, where there is no thumb or palm detection.
Comment 10 Peter Hutterer 2016-04-17 22:07:48 UTC
the mac touchpads are still the best ones, so I think the best solution would be to analyse the touch output and tune it for those. libinput has the ability to use device-specific palm/thumb detections but we mainly focus on the lenovos because that's what we have good access too.

I suggest that you looks at the evemu recordings and try to make sense of them, find some patterns on how to identify thumbs and palms and then we can see how we codify those.
Comment 11 Peter Hutterer 2016-06-03 02:32:53 UTC
fwiw, I don't have time to work on this right now, I'll rely on you to look at the recordings and see if you can spot some pattern.
Comment 12 Peter Hutterer 2016-11-29 07:38:38 UTC
a script to print a 3d graph of pressure values on a touchpad recording is here:
https://github.com/whot/input-data-analysis/blob/master/touch-pressure/touch-pressure.py

run it against a long-term touchpad data recording and it should show you the various pressure values in a mesh graph. Not perfect, but good enough to recognise the interesting ranges.
Comment 13 Peter Hutterer 2017-05-18 01:24:41 UTC
needinfo for too long, closing, sorry. Please re-open when you have time to contribute the requested information.

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.