Synaptics Touchpad scrolling problems on MSI laptop
Summary
The main issue I am reporting is when I'm scrolling on my touchpad (I use two finger scroll), then occasionally if a third finger touches the touchpad my scrolling progress jumps back to the position where I initially started scrolling. This behavior occurs frequently but not always.
Secondary but also quite important issue is that when scrolling with the touchpad, smooth scrolling does not work, whereas if I scroll with my mouse it works fine in every program that seems to implement it. On top of this scrolling is sometimes a little jittery (jumping up and down erratically by small amounts, happens a lot in the libinput debug-events output below).
Last issue I have is that palm detect does not work if a palm + finger/other palm is on the pad. (it works if there is only one palm, but if one palm is on the pad, I can use a finger or even the other palm to move the cursor!)
The effect of this is that if I am typing with tap to click enabled, occasionally the touchpad will spaz out and mess up my writing with random clicks and drags when some part or other of my hand is touching the pad, which is exactly what palm detect is supposed to prevent.
Steps to reproduce
- As mentioned this problem is not 100% consistent so there's no 100% way to reproduce it easily, the way I do however reproduce it when actively trying to is to use two-finger scroll to scroll on a page for a while. I try my best to keep the two fingers on the touchpad at all times as it seems the longer I have been scrolling, the likelier it is for the issue to occur. While doing so I will occasionally either by accident or deliberately (every 30 seconds or so) do a light tap with a third finger. Eventually one of those accidental or deliberate third taps would reset the page to where I initially started scrolling. It is a very weird bug.
- Two-Finger or Edge scroll on any page in pretty much any program that supports smooth scrolling, with that feature enabled, and watch how scrolling is entirely unsmooth when done on the touchpad.
- Place one palm on the touchpad, use a finger from your other hand to interact with the touchpad normally, when it shouldn't be able to.
Required information
- libinput version: 1.18.1
- xf86-input-libinput version: 1.1.0
- hardware information: MSI GE75 Raider 8SE (Inxi Output)
-
evemu-record
output: Scrolled until issue 1 was replicated -
libinput record
output: libinput-record.txt (Scrolled until issue 1 was replicated) -
libinput record
output: lire.txt (I put one palm on the touchpad, then used the other palm to move the cursor around; this is after applying below touchpad-edge-detector rules.) -
touchpad-edge-detector
output:Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event22 Move one finger around the touchpad to detect the actual edges Kernel says: x [1284..5658], y [1124..4730] Touchpad sends: x [1285..5658], y [1126..4794] /^C Touchpad has no resolution, size unknown User-specified touchpad size: 109x62mm Calculated ranges: 4373/3668 Suggested udev rule: # <Laptop model description goes here> evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnAmericanMegatrendsInc.:bvrE17E2IMS.10E:bd03/28/2019:br1.14:svnMicro-StarInternationalCo.,Ltd.:pnGE75Raider8SE:pvrREV1.0:sku17E2.1:rvnMicro-StarInternationalCo.,Ltd.:rnMS-17E2:rvrREV1.0:cvnMicro-StarInternationalCo.,Ltd.:ct10:cvrN/A:* EVDEV_ABS_00=1285:5658:40 EVDEV_ABS_01=1126:4794:59 EVDEV_ABS_35=1285:5658:40 EVDEV_ABS_36=1126:4794:59
-
udevadm info
output:P: /devices/platform/i8042/serio1/input/input7/event22 N: input/event22 L: 0 S: input/by-path/platform-i8042-serio-1-event-mouse E: DEVPATH=/devices/platform/i8042/serio1/input/input7/event22 E: DEVNAME=/dev/input/event22 E: MAJOR=13 E: MINOR=86 E: SUBSYSTEM=input E: USEC_INITIALIZED=2745699 E: ID_INPUT=1 E: ID_INPUT_TOUCHPAD=1 E: ID_BUS=i8042 E: ID_SERIAL=noserial E: ID_PATH=platform-i8042-serio-1 E: ID_PATH_TAG=platform-i8042-serio-1 E: ID_INPUT_TOUCHPAD_INTEGRATION=internal E: LIBINPUT_DEVICE_GROUP=11/2/7:isa0060/serio1 E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse
-
libinput debug-events --verbose
output: libinputdebug.txt