17

Since I upgraded to 17.10, touchpad tap sensitivity is too low, and frequently misses my taps. I know that the system has figured out that my Lenovo Yoga 2 has a Synaptics touchpad:

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
...
/dev/input/event6:  Synaptics TM2714-001
...

But xinput doesn’t think it’s anything Synaptics-specific:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:13                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:13              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-touch:13                         id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:13                      id=8    [slave  keyboard (3)]

$ xinput list-props "xwayland-touch:13"
Device 'xwayland-touch:13':
    Device Enabled (119):   1
    Coordinate Transformation Matrix (121): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (244): 0
    Device Accel Constant Deceleration (245):   1.000000
    Device Accel Adaptive Deceleration (246):   1.000000
    Device Accel Velocity Scaling (247):    10.000000

and synclient agrees:

$ synclient
Couldn't find synaptics properties. No synaptics driver loaded?

libinput does know it’s a Synaptics:

$ sudo libinput list-devices
...
Device:           Synaptics TM2714-001
Kernel:           /dev/input/event6
Group:            8
Seat:             seat0, default
Size:             87x57mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a
...

though I don’t see anything like the old X11 finger pressure properties. (libinput measure-touchpad-tap, interestingly, collects data about time rather than pressure.)

How can I improve the sensitivity to taps?

Slothman
  • 271
  • I was trying to change my trackpad speed and struggled with some of the same issues. It looks like the settings are now in gsettings. I don't see one now for pressure, but maybe it's a lead. – Sia Mar 07 '18 at 16:30

1 Answers1

7

Use the libinput measure touchpad-pressure tool provided by libinput. This tool will search for your touchpad device and print some pressure statistics, including whether a touch is/was considered logically down.

sudo libinput measure touchpad-pressure

By default, this tool uses the udev hwdb entries for the pressure range. To narrow down on the best values for your device, specify the 'logically down' and 'logically up' pressure thresholds with the `--touch-thresholds argument:

sudo libinput measure touchpad-pressure --touch-thresholds=10:8 --palm-threshold=20

Interact with the touchpad and check if the output of this tool matches your expectations.

Once the thresholds are decided on (e.g. 10 and 8), they can be enabled with the following hwdb file:

cat /etc/udev/hwdb.d/99-touchpad-pressure.hwdb
libinput:name:*SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq6910p*
LIBINPUT_ATTR_PRESSURE_RANGE=10:8

The first line is the match line and should be adjusted for the device name (see evemu-record's output) and for the local system, based on the information in /sys/class/dmi/id/modalias. The modalias should be shortened to the specific system's information, usually system vendor (svn) and product name (pn).

Once in place, you need to run the following to commands, adjusted for your device's event node:

sudo udevadm hwdb --update
sudo udevadm test /sys/class/input/eventX

If the pressure range property shows up correctly, restart X or the Wayland compositor and libinput should now use the correct pressure thresholds. The Helper tools can be used to verify the correct functionality first without the need for a restart.

Once the pressure ranges are deemed correct, report a bug to get the pressure ranges into the repository.

Note: Not a single word typed by me, this is all a quote.

Source: https://wayland.freedesktop.org/libinput/doc/latest/touchpad-pressure-debugging.html

anonim
  • 408