Debian – After update, Synaptics touchpad gives lethargic pointer

debiantouchpadxorg

My laptop is running KDE on a Debian a testing/unstable mix. I recently did an upgrade, which pulled in a new xorg version (xserver-xorg-core:amd64 2:1.15.1-1 → 2:1.15.99.904-1), including all the submodules such as xserver-xorg-input-synaptics:amd64 1.7.3-1+b1 → 1.8.0-1. There were a bunch of other things too.

After reboot, the trackpad moves the pointer ridiculously slowly. As in move my finger across it quickly over a dozen times to get across the screen. Yet, moving my finger slowly shows it clearly still has acceleration, just nowhere near enough.

First, of course, I tried the KDE Touchpad settings. I upped the maximum speed as far as it goes, and the same with the acceleration. That got it down to 5–6 times across quickly to get across the screen—still far too slow.

Second, I tried speeding it up with xset m, changing the settings from 30/10 threshold 4 to even insane values like 100/2 didn't have any effect. Attempting to use synclient let me set the MaxSpeed to 255, but that hasn't done anything. It wouldn't let me push the AccelFactor above 1 (same as the KDE settings pannel).

I downgraded the entire X stack to install synaptics 1.7 again (1.8 changed ABI). That works. The difference is immediately apparent: on the kdm login screen, it takes 1–2 swipes across the pad to go across the screen with 1.7; it takes 26 (yes, I counted) with 1.8. I logged into a failsafe session in both 1.7 and 1.8; the output of xset q is identical; the output of xinput list-props on the trackpad device is almost the same (the property numbers are different, 1.8 adds a new circular pad setting, value 0; 1.7 has grab event device set to 1, instead of 0 in 1.8). The xorg logs similarly don't seem to show much. I've put an tarball of them all on Dropbox if you wish to review them.

Is there some config setting I'm missing? Seems like X acceleration is just broken here, leading to unacceptably slow pointers.

Best Answer

Turns out the was fallout of an attempt to get coordinate scaling working better with external monitors. That was trying to fix to pointer speed changing if adding an external monitor changes the aspect ratio. It, however, apparently didn't work with a at least some devices and caused this bug.¹ Thus, they reverted the change, especially since it turned out not to actually accomplish the goal anyway.

The fix thus is simple: upgrade xserver-xorg-common and xserver-xorg-core to 1.16.0-1.

Related Question