Bug 97347 - exclusion zones don't exist? Palms move cursor from sides
Summary: exclusion zones don't exist? Palms move cursor from sides
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: 1.2.x
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-15 03:54 UTC by Paul Johnson
Modified: 2016-08-19 06:37 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
left palm brushes touchpad (44.59 KB, text/plain)
2016-08-15 03:54 UTC, Paul Johnson
Details
right palm brushes touchpad (41.55 KB, text/plain)
2016-08-15 03:55 UTC, Paul Johnson
Details
dmesg (221.12 KB, text/plain)
2016-08-16 22:21 UTC, Paul Johnson
Details
output from libinput event-debug --verbose while using left side (8.15 KB, text/plain)
2016-08-19 03:35 UTC, Paul Johnson
Details

Description Paul Johnson 2016-08-15 03:54:12 UTC
Created attachment 125784 [details]
left palm brushes touchpad

Ubuntu Linux 16.04. 

There appears to be no palm detection as described in the exclusion zones document (https://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html).  I'm attaching evemu-record output when brushing touchpad from outer edge with palm.  I've tested quite a few different kernels, the result does not change much.

Many other touchpad features work fine.  I can move the cursor smoothly, tap to click is fine, middle click emulation is good.  Disable while typing works as expected, except that the instant I pause, the cursor flies somewhere else and I type in the wrong spot.  I don't get dependable result from the three-finger tap. About 1 time in 10 I can get three-tap to trigger a middle event. However,  a two-finger tap does work as a right click very dependably.  I fairly often have the problem that the cursor flies to an outer edge at the instant I left click. I cannot tell if that is linked to palm detection, but I guess yes. 

This may be irrelevant to you, but I notice some trouble in the event recording playback. When I brush touchpad with palm, cursor moves inches on the screen, but when I do the playback, the cursor moves only 10% as much. 

I tried pretty hard to get the info you ask for. I hope this is it!

Device: Dell Precision 5510

dmi:bvnDellInc.:bvr01.02.10:bd06/30/2016:svnDellInc.:pnPrecision5510:pvr:rvnDellInc.:rn0N8J4R:rvrA01:cvnDellInc.:ct9:cvr:


touchpad dimensions

 width   104.8
 height  79.4
 

Ubuntu Linux libinput 1.2.3

kernel

$ uname -a
Linux delllap-16 4.4.0-35-generic #54-Ubuntu SMP Tue Aug 9 17:03:04 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

The part from:

$ cat /proc/bus/input/devices

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input6
U: Uniq=
H: Handlers=mouse0 event7
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=660800011000003

The xinput list-props output.

Device 'SynPS/2 Synaptics TouchPad':
        Device Enabled (139):   1
        Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (273): 1
        libinput Tapping Enabled Default (274): 0
        libinput Tapping Drag Enabled (275):    1
        libinput Tapping Drag Enabled Default (276):    1
        libinput Tapping Drag Lock Enabled (277):       0
        libinput Tapping Drag Lock Enabled Default (278):       0
        libinput Accel Speed (279):     0.000000
        libinput Accel Speed Default (280):     0.000000
        libinput Natural Scrolling Enabled (281):       0
        libinput Natural Scrolling Enabled Default (282):       0
        libinput Send Events Modes Available (257):     1, 1
        libinput Send Events Mode Enabled (258):        0, 0
        libinput Send Events Mode Enabled Default (259):        0, 0
        libinput Left Handed Enabled (283):     0
        libinput Left Handed Enabled Default (284):     0
        libinput Scroll Methods Available (285):        1, 1, 0
        libinput Scroll Method Enabled (286):   1, 0, 0
        libinput Scroll Method Enabled Default (287):   1, 0, 0
        libinput Click Methods Available (288): 1, 1
        libinput Click Method Enabled (289):    1, 0
        libinput Click Method Enabled Default (290):    1, 0
        libinput Disable While Typing Enabled (291):    1
        libinput Disable While Typing Enabled Default (292):    1
        Device Node (260):      "/dev/input/event7"
        Device Product ID (261):        2, 7
        libinput Drag Lock Buttons (293):       <no items>
        libinput Horizonal Scroll Enabled (262):        1
Comment 1 Paul Johnson 2016-08-15 03:55:21 UTC
Created attachment 125785 [details]
right palm brushes touchpad

The right palm
Comment 2 Peter Hutterer 2016-08-15 10:30:27 UTC
how old is this laptop? the touchpad doesn't have resolution data so libinput assumes a standard size (which is quite off, but that's fixable). I'm just surprised that resolution-less synaptics pads are still out in the wild
Comment 3 Paul Johnson 2016-08-15 15:52:35 UTC
Laptop was received June 18, 2016.
Comment 4 Peter Hutterer 2016-08-16 00:00:04 UTC
add your dmesg here too please
Comment 5 Paul Johnson 2016-08-16 22:21:08 UTC
Created attachment 125832 [details]
dmesg
Comment 6 Peter Hutterer 2016-08-18 00:15:23 UTC
Please test the hwdb entry below according to
https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_hwdfaq_hwdb_changes

# Dell Precision 5510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
 EVDEV_ABS_00=::42
 EVDEV_ABS_01=::43
 EVDEV_ABS_35=::42
 EVDEV_ABS_36=::43


And while you're at it, please run the touchpad-edge-detector to check if the axis ranges are correctly announced by the kernel.
Comment 7 Paul Johnson 2016-08-18 02:00:14 UTC
I'm not used to feeling so out of my depth.

I put the file in /etc/udev/hwdb.d:

pauljohn:hwdb.d$ cat dell-5510.hwdb
# Dell Precision 5510
evdev:name:SynPS/2 Synaptics
TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
 EVDEV_ABS_00=::42
 EVDEV_ABS_01=::43
 EVDEV_ABS_35=::42
 EVDEV_ABS_36=::43

pauljohn:hwdb.d$ sudo udevadm hwdb --reload
hwdb: unrecognized option '--reload'

I'm guessing my udevadm is not up to date?  My systemd is version 229-4ubuntu7

Please advise.

Meanwhile, Mr Google suggests that rebooting will do the hwdb automatically, I'll see if that does it.  If you don't hear from me, it will mean I've broken something horribly by following the advice of teenagers in Stackoverflow :)

I can run the touchpad-edge-detector

pauljohn:~$ sudo touchpad-edge-detector /dev/input/event7
Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event7
Move one finger around the touchpad to detect the actual edges
Kernel says:    x [1278..5664], y [1206..4646]
Touchpad sends: x [1278..5665], y [1209..4650] |^C

Touchpad has no resolution, size unknown
Calculate resolution as:
        x axis: 4386/<width in mm>
        y axis: 3440/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnDellInc.:bvr01.02.10:bd06/30/2016:svnDellInc.:pnPrecision5510:pvr:rvnDellInc.:rn0N8J4R:rvrA01:cvnDellInc.:ct9:cvr:*
 EVDEV_ABS_00=1278:5665:<x resolution>
 EVDEV_ABS_01=1209:4650:<y resolution>
 EVDEV_ABS_35=1278:5665:<x resolution>
 EVDEV_ABS_36=1209:4650:<y resolution>
Comment 8 Peter Hutterer 2016-08-18 02:39:21 UTC
(In reply to Paul Johnson from comment #7)
> I'm not used to feeling so out of my depth.
> 
> I put the file in /etc/udev/hwdb.d:
> 
> pauljohn:hwdb.d$ cat dell-5510.hwdb
> # Dell Precision 5510
> evdev:name:SynPS/2 Synaptics
> TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*

in case this wasn't bugzilla adding the linebreak: make sure this is one line only

> pauljohn:hwdb.d$ sudo udevadm hwdb --reload
> hwdb: unrecognized option '--reload'

whoops. documentation is wrong, it's --update. Sorry about that, I'll push the fix out in a second


> Meanwhile, Mr Google suggests that rebooting will do the hwdb automatically,

no, it doesn't rebuild the hwdb on reboot, it merely applies the tags in the existing compiled hwdb


> pauljohn:~$ sudo touchpad-edge-detector /dev/input/event7
> Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event7
> Move one finger around the touchpad to detect the actual edges
> Kernel says:    x [1278..5664], y [1206..4646]
> Touchpad sends: x [1278..5665], y [1209..4650] |^C

ok, that's close enought hat we don't have to fix anything here, thanks.
Comment 9 Peter Hutterer 2016-08-19 00:33:38 UTC
fwiw, you can just quickly test if things work by building libinput and running sudo ./tools/event-debug, optionally with --verbose

That only prints the events but should show you the right size of the touchpad now and it'll be easy to check if palm detection really swallows the events. Of course you need to make sure the hwdb is built first.
Comment 10 Paul Johnson 2016-08-19 02:25:53 UTC
I don't see any difference before and after. 

Maybe I don't know what to look for.  I got idea from your exclusion document that the outside 10% (or so) of touchpad would not initiate touches, especially on the left. If I drag a finger on left--top to bottom near the edge--cursor should not move.  Right should do nothing moving from bottom to top. 

I wondered, in the output from touchpad-edge-detector, where it has 

 EVDEV_ABS_00=1278:5665:<x resolution>
 EVDEV_ABS_01=1217:4649:<y resolution>
 EVDEV_ABS_35=1278:5665:<x resolution>
 EVDEV_ABS_36=1217:4649:<y resolution>

what does it mean <x resolution> or <y resolution>.

In any case, I'm going to test the libinput build suggestion. 

Here is the implementation info on  

# Dell Precision 5510
evdev:name:SynPS/2 Synaptics
TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
 EVDEV_ABS_00=::42
 EVDEV_ABS_01=::43
 EVDEV_ABS_35=::42
 EVDEV_ABS_36=::43


pauljohn:hwdb.d$ sudo udevadm hwdb --update
pauljohn:hwdb.d$ sudo udevadm trigger /sys/class/input/event7
pauljohn:hwdb.d$ sudo udevadm test /sys/class/input/event7
calling: test
version 229
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          229
file size:         7058592 bytes
header size             80 bytes
strings            1762272 bytes
nodes              5296240 bytes
Load module index
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
timestamp of '/lib/udev/rules.d' changed
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /lib/udev/rules.d/40-crda.rules
Reading rules file: /lib/udev/rules.d/40-libsane.rules
Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
Reading rules file: /lib/udev/rules.d/50-apport.rules
Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
Reading rules file: /lib/udev/rules.d/50-firmware.rules
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/55-dm.rules
Reading rules file: /lib/udev/rules.d/56-hpmud.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-gnupg.rules
Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
Reading rules file: /lib/udev/rules.d/60-inputattach.rules
Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /etc/udev/rules.d/60-vboxdrv.rules
Reading rules file: /lib/udev/rules.d/61-kde-bluetooth-rfkill.rules
Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /lib/udev/rules.d/69-libmtp.rules
Reading rules file: /lib/udev/rules.d/69-wacom.rules
Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules
Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-power-switch.rules
Reading rules file: /lib/udev/rules.d/70-printers.rules
Reading rules file: /lib/udev/rules.d/70-uaccess.rules
Reading rules file: /lib/udev/rules.d/71-nvidia.rules
Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
Reading rules file: /lib/udev/rules.d/71-seat.rules
Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Reading rules file: /lib/udev/rules.d/73-seat-late.rules
Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules
Reading rules file: /lib/udev/rules.d/80-udisks2.rules
Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib/udev/rules.d/85-brltty.rules
Reading rules file: /lib/udev/rules.d/85-hdparm.rules
Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib/udev/rules.d/85-regulatory.rules
Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /lib/udev/rules.d/90-libgpod.rules
Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /lib/udev/rules.d/99-systemd.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 35511 bytes strings
24167 strings (203400 bytes), 20623 de-duplicated (171434 bytes), 3545 trie nodes used
value '[dmi/id]sys_vendor' is 'Dell Inc.'
value '[dmi/id]sys_vendor' is 'Dell Inc.'
IMPORT builtin 'input_id' /lib/udev/rules.d/50-udev-default.rules:14
capabilities/ev raw kernel attribute: b
capabilities/abs raw kernel attribute: 660800011000003
capabilities/rel raw kernel attribute: 0
capabilities/key raw kernel attribute: e520 10000 0 0 0 0
properties raw kernel attribute: 5
test_key: checking bit block 0 for any keys; found=0
test_key: checking bit block 64 for any keys; found=0
test_key: checking bit block 128 for any keys; found=0
test_key: checking bit block 192 for any keys; found=0
GROUP 106 /lib/udev/rules.d/50-udev-default.rules:30
IMPORT builtin 'hwdb' /lib/udev/rules.d/60-evdev.rules:8
IMPORT builtin 'hwdb' returned non-zero
value '[dmi/id]modalias' is 'dmi:bvnDellInc.:bvr01.02.10:bd06/30/2016:svnDellInc.:pnPrecision5510:pvr:rvnDellInc.:rn0N8J4R:rvrA01:cvnDellInc.:ct9:cvr:'
IMPORT builtin 'hwdb' /lib/udev/rules.d/60-evdev.rules:17
IMPORT builtin 'hwdb' returned non-zero
IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-input.rules:31
LINK 'input/by-path/platform-i8042-serio-1-event-mouse' /lib/udev/rules.d/60-persistent-input.rules:33
value '[dmi/id]product_name' is 'Precision 5510'
value '[dmi/id]product_name' is 'Precision 5510'
value '[dmi/id]product_name' is 'Precision 5510'
value '[dmi/id]product_name' is 'Precision 5510'
PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6
starting '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules'
Process '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' failed with exit code 1.
handling device node '/dev/input/event7', devnum=c13:71, mode=0660, uid=0, gid=106
preserve permissions /dev/input/event7, 020660, uid=0, gid=106
preserve already existing symlink '/dev/char/13:71' to '../input/event7'
found 'c13:71' claiming '/run/udev/links/\x2finput\x2fby-path\x2fplatform-i8042-serio-1-event-mouse'
creating link '/dev/input/by-path/platform-i8042-serio-1-event-mouse' to '/dev/input/event7'
preserve already existing symlink '/dev/input/by-path/platform-i8042-serio-1-event-mouse' to '../event7'
created db file '/run/udev/data/c13:71' for '/devices/platform/i8042/serio1/input/input6/event7'
.INPUT_CLASS=mouse
ACTION=add
DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse
DEVNAME=/dev/input/event7
DEVPATH=/devices/platform/i8042/serio1/input/input6/event7
ID_INPUT=1
ID_INPUT_TOUCHPAD=1
ID_INPUT_TOUCHSCREEN=1
ID_PATH=platform-i8042-serio-1
ID_PATH_TAG=platform-i8042-serio-1
ID_SERIAL=noserial
MAJOR=13
MINOR=71
SUBSYSTEM=input
USEC_INITIALIZED=2508925
Unload module index
Unloaded link configuration context.
pauljohn:hwdb.d$
Comment 11 Peter Hutterer 2016-08-19 02:33:35 UTC
(In reply to Paul Johnson from comment #10)
> Maybe I don't know what to look for.  I got idea from your exclusion
> document that the outside 10% (or so) of touchpad would not initiate
> touches, especially on the left. If I drag a finger on left--top to bottom
> near the edge--cursor should not move.  

yep, that's correct.
 
> I wondered, in the output from touchpad-edge-detector, where it has 
> 
>  EVDEV_ABS_00=1278:5665:<x resolution>
>  EVDEV_ABS_01=1217:4649:<y resolution>
>  EVDEV_ABS_35=1278:5665:<x resolution>
>  EVDEV_ABS_36=1217:4649:<y resolution>
> 
> what does it mean <x resolution> or <y resolution>.

this is where you plug in the resolution in units/mm. libevdev upstream now
requires the size specification so this is auto-filled.

> # Dell Precision 5510
> evdev:name:SynPS/2 Synaptics
> TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*

again, this must not be across two lines, it must be a single line.

which file did you add it to? the udev adm output doesn't show any specific
file and it should complain about the above if you added it to an existing
file. but either way, the problem right now is that udev doesn't apply the tag which indicates either a typo or some other issue with the hwdb match.
Comment 12 Paul Johnson 2016-08-19 03:33:40 UTC
Bingo. You got that right. I had the line break. Honestly, it looked that way in the web browser.

I put lines 2-3 on one line and result was entirely happier.  I'm typing this message now and cursor is not flying everywhere!  I'm going to use this for a few days before I complain any more about it. Thanks so much for your attention. 

Now the outer left edge of the exclusion zone from to to bottom is inactive and the bottom-to-top action on the right is similarly numb. Top right to bottom is still active, but not always. I can't quite tell the pattern yet, but I'm pretty happy. I have never used the right edge scroll feature too much, will get used to the two finger drag in the middle for scrolling.

Some of the other surprises are gone too.  I don't see quite so much random cursor movement that coincides with a click inside the main part of the touchpad.  In one hour, I've seen just a couple of those weird "cursor flies out to the edges" effects. 

Three finger tap to produce middle click is still very undependable, but two finger click is super dependable and two finger drag works 100% of time.

I built libinput and ran the test you described.

sudo ./tools/event-debug --verbose

I only moved finger along left side during test period. I'm attaching that separately.

In conclusion, this is very encouraging. I'll practice with this for a week before I contact you again.
Comment 13 Paul Johnson 2016-08-19 03:35:54 UTC
Created attachment 125897 [details]
output from libinput event-debug --verbose while using left side

Hopefully, you see improvement in this and I'm not fooling myself thinking this touchpad is better.  A few times I've been so frustrated that I actually fooled myself into thinking it was better.
Comment 14 Peter Hutterer 2016-08-19 06:37:35 UTC
yep, definitely activates. Look at the message "palm: palm detected (edge)", that's the signal. PR submitted, thanks!

https://github.com/systemd/systemd/pull/3989

Closing this bug, systemd PRs are usually merged very quickly.


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.