Newer XPS Laptop: Can't Get SynPS/2 Touchpad to Function

I’m trying to get touchpad pressure settings to work on my Dell XPS 13 (9360), which has a Microsoft Precision touchpad. I’m running Tumbleweed. The problem with the touchpad is that a physical click demands a lot of pressure. It’s extremely stiff, yet tap-to-click is called with even a slightest touch. I can’t get pressure settings to work to make the tapping less sensitive, so the result is a touchpad experience that makes me want to ditch the laptop entirely. For example, if I have tap-to-click off, the pressure required to generate a physical click usually means that some other touch event gets generated just beforehand. I move the cursor over a button, but when I try to click on it the cursor moves off the button. Stuff like that.

I’ve tried many suggested fixes for touchpads from various forums, to no avail. I thought I made a breakthrough yesterday when, for the first time, I was able to get pressure and sensitivity info to show for the first time. In Plasma’s “Configure Desktop > Input Devices > Touchpad,” the “Pointer Motion > Pressure-Dependent Motion” and “Sensitivity > Sensitivity” settings were no longer greyed out. And running evtest showed that indeed ABS_PRESSURE and ABS_MT_PRESSURE were, for the first time, showing up. It was celebration time. The catch was that the touchpad was completely non-operational, and I had to do everything through keystrokes.

More background: I get two touchpad devices showing up with xinput: “DLL075B:01 06CB:76AF Touchpad” and “SynPS/2 Synaptics TouchPad”. The way I finally got the above pressure settings to appear was to set a conf file in xorg.conf.d to ignore the DLL touchpad, not the SynPS/2 one. This is opposite to the recommendation in most posts dealing with touchpad issues, which suggest setting the file to ignore the DLL one. I had tried that, and it didn’t have any effect anywhere, and pressure settings were still inaccessible in the Plasma gui and in evtest. I also tried blacklisting psmouse (another common suggestion), and then, for the heck of it, i2c-hid, but neither had any effect.

In all the above cases, I am able to alter FingerHigh and FingerLow values with synclient, but the settings never actually have an effect on the touchpad’s operation. The merest graze is still counted as a click, except obviously when the DLL touchpad is ignored, in which case the touchpad doesn’t work at all. And strangely (though this may be totally unrelated) TouchpadOff is always set at 1. When I set it to 0 with synclient, it immediately reverts back to 1. I was able to see this happen in real time when running evemu-record. And the DLL touchpad still works (providing it’s not ignored), even though TouchpadOff is always 1.

So, I can either use the DLL touchpad, without being able to configure pressure settings, or I can configure pressure settings (using the SynPS/2 touchpad), but then can’t use the touchpad.

Is there any way to get the SynPS/2 touchpad device to function? If it’s any help, here is the output of evtest (without actually touching the touchpad), while using the DLL device, and while both are showing up with xinput:

troodon@linux-io1y:~sudo evtest /dev/input/event1 Input driver version is 1.0.1
 Input device ID: bus 0x11 vendor 0x2 product 0x7 version 0x1a1
 Input device name: "SynPS/2 Synaptics TouchPad"
 Supported events:
   Event type 0 (EV_SYN)
   Event type 1 (EV_KEY)
     Event code 272 (BTN_LEFT)
     Event code 325 (BTN_TOOL_FINGER)
     Event code 328 (BTN_TOOL_QUINTTAP)
     Event code 330 (BTN_TOUCH)
     Event code 333 (BTN_TOOL_DOUBLETAP)
     Event code 334 (BTN_TOOL_TRIPLETAP)
     Event code 335 (BTN_TOOL_QUADTAP)
   Event type 3 (EV_ABS)
     Event code 0 (ABS_X)
       Value      0
       Min     1276
       Max     5666
     Event code 1 (ABS_Y)
       Value      0
       Min     1118
       Max     4734
     Event code 24 (ABS_PRESSURE)
       Value      0
       Min        0
       Max      255
     Event code 28 (ABS_TOOL_WIDTH)
       Value      0
       Min        0
       Max       15
     Event code 47 (ABS_MT_SLOT)
       Value      0
       Min        0
       Max        1
     Event code 53 (ABS_MT_POSITION_X)
       Value      0
       Min     1276
       Max     5666
     Event code 54 (ABS_MT_POSITION_Y)
       Value      0
       Min     1118
       Max     4734
     Event code 57 (ABS_MT_TRACKING_ID)
       Value      0
       Min        0
       Max    65535
     Event code 58 (ABS_MT_PRESSURE)
       Value      0
       Min        0
       Max      255
 Properties:
   Property type 0 (INPUT_PROP_POINTER)
   Property type 2 (INPUT_PROP_BUTTONPAD)
 Testing ... (interrupt to exit)


 troodon@linux-io1y:~> sudo evtest /dev/input/event19

 Input driver version is 1.0.1
 Input device ID: bus 0x18 vendor 0x6cb product 0x76af version 0x100
 Input device name: "DLL075B:01 06CB:76AF Touchpad"
 Supported events:
   Event type 0 (EV_SYN)
   Event type 1 (EV_KEY)
     Event code 272 (BTN_LEFT)
     Event code 325 (BTN_TOOL_FINGER)
     Event code 328 (BTN_TOOL_QUINTTAP)
     Event code 330 (BTN_TOUCH)
     Event code 333 (BTN_TOOL_DOUBLETAP)
     Event code 334 (BTN_TOOL_TRIPLETAP)
     Event code 335 (BTN_TOOL_QUADTAP)
   Event type 3 (EV_ABS)
     Event code 0 (ABS_X)
       Value    733
       Min        0
       Max     1216
       Resolution      12
     Event code 1 (ABS_Y)
       Value    383
       Min        0
       Max      680
       Resolution      12
     Event code 47 (ABS_MT_SLOT)
       Value      0
       Min        0
       Max        4
     Event code 53 (ABS_MT_POSITION_X)
       Value      0
       Min        0
       Max     1216
       Resolution      12
     Event code 54 (ABS_MT_POSITION_Y)
       Value      0
       Min        0
       Max      680
       Resolution      12
     Event code 57 (ABS_MT_TRACKING_ID)
       Value      0
       Min        0
       Max    65535
 Properties:
   Property type 0 (INPUT_PROP_POINTER)
   Property type 2 (INPUT_PROP_BUTTONPAD)
 Testing ... (interrupt to exit)

More background: I get two touchpad devices showing up with xinput: “DLL075B:01 06CB:76AF Touchpad” and “SynPS/2 Synaptics TouchPad”. The way I finally got the above pressure settings to appear was to set a conf file in xorg.conf.d to ignore the DLL touchpad, not the SynPS/2 one. This is opposite to the recommendation in most posts dealing with touchpad issues, which suggest setting the file to ignore the DLL one. I had tried that, and it didn’t have any effect anywhere, and pressure settings were still inaccessible in the Plasma gui and in evtest. I also tried blacklisting psmouse (another common suggestion), and then, for the heck of it, i2c-hid, but neither had any effect.

What happens if you don’t explicitly configure the ‘DLL’ device to be ignored? Can you then expose the required functions of both? I assume libinput is in use for these input devices…

grep "Using input driver" /var/log/Xorg.0.log

I note also that this archlinux wiki page mentions that the touchpad is supported by both the libinput and synaptics Xorg input drivers. However the latter is being deprecated in favour of the former, and the Gnome DE requires libinput.

Ultimately, it may be that a bug report is required to get this device supported completely.

I misspoke. I meant to say “This is opposite to the recommendation … to ignore the **SynPS/2 **one.” Sorry about that. A clearer recap:

Ignoring DLL touchpad: SynPS/2 is the only one that shows up in xinput. Touchpad sensitivity settings are exposed. Touchpad (SynPS/2) is non-functional.
Ignoring SynPS/2 touchpad: DLL is the only one that shows up in xinput. Touchpad sensitivity settings are not exposed. Touchpad (DLL) functions, but sensitivity cannot be tweaked.
Ignoring neither: SynPS/2 and DLL show up in xinput. Touchpad sensitivity settings are not exposed. Touchpad (DLL) functions, but sensitivity cannot be tweaked.

As to which input driver, I’m using synaptics. With libinput I have even fewer options for configuring the touchpad, whether through xinput or the Plasma gui. I wish the SynPS/2 touchpad would work.

I will, but not sure how.

Submitting bug reports…
https://en.opensuse.org/openSUSE:Submitting_bug_reports

or submit upstream
https://bugs.freedesktop.org/buglist.cgi?component=libinput&product=Wayland&resolution=---

Submitted: https://bugzilla.opensuse.org/show_bug.cgi?id=1043653

Thanks for making the effort. I’ll watch with interest.