terriko: (Default)
terriko ([personal profile] terriko) wrote2013-07-10 12:01 pm
Entry tags:

My oversensitive touchpad

This is more a note to self than anything else, but who knows, maybe someone reading is having exactly the same problem as me?

The "new" laptop has an overly sensitive touchpad, in that it seemed to be clicking at times when I didn't want it to click. While quite a few people handle this by disabling the touchpad or disabling tap-to-click, I knew from experience with my last linux laptop that this is a solvable problem under linux at least.

There's a *lot* of ways to control mouse settings, but here's the one that worked for me. In short:


xinput list
to find my touchpad device, which turned out to be id=12

xinput list-props 12 |grep -i finger
to give me a list of relevant entries

xinput set-prop 12 "Synaptics Finger" 25, 32, 256

to set it to something that seems better behaved.
According to the link above: "By increasing the second parameter, you require more finger pressure for the trackpad to respond. The first parameter controls release pressure, the third is to detect a button press (I think)."

and that seemed to match up. In my case, I needed to up the second number. While I was in there, I tweaked the two-finger settings so it'd be easier to "right click" with two fingers.

Lest it's useful to me later, here's my current settings:
terri@djpwn3:~$ xinput list-props 12 |grep -i finger
Synaptics Finger (261): 25, 32, 256
Synaptics Two-Finger Pressure (268): 256
Synaptics Two-Finger Width (269): 1
Synaptics Two-Finger Scrolling (272): 1, 1

The Joy of xinput

[personal profile] fg4fc07p 2013-07-10 07:54 pm (UTC)(link)
When I first discovered xinput, I was all like "Hey, finally I can discover ALL input the settings and change them from scripts, instead of having to find two or three different GNOME apps to configure every new touchpad! This is the best thing ever!"

That was a few lines of script code ago.

It turns out that the properties available change from driver/xorg version to version, and if there are multiple kernel drivers that work with your hardware, then those change on every boot if your kernel module loading order is unpredictable (hello, systemd. We meet again!). I now have three or four different parameter settings for ONE touchpad in ONE machine to handle all the possible cases.

Some touchpad hardware's motion sensitivity is programmed using a piecewise linear function (below speed x, use ratio Y; above speed x, use ratio Z), others with polynomial curves or exponential series, and translating a preference from one representation to another requires some non-trivial understanding of math. Mix in limited numeric precision in the hardware, and find there are preference settings that cannot be moved from an old device to a new one.