Monday, July 31, 2017

touchpad input driver: testing needed

In the long run the synaptics driver, which handles touchpad inputs in
X, may be a dead end of the input framework, and it's time to prepare
an alternative. The kernel contains an internal touchpad input driver
now, it's a part of wsmouse(4). It provides standard features -
two-finger/edge scrolling, software buttons for clickpads, tapping -
and various kinds of plankton required for usability.

If you have a new snapshot (from July 27 or later) on a laptop with a
Synaptics, Apple, Alps, or Elantech-4 touchpad, you could help with
tests, more tests, and tests. In order to activate the driver, add the
following entry to /etc/xorg.conf and restart X (if the file isn't
present, simply create it with this content):

Section "InputClass"
Identifier "wsmouse touchpad"
Driver "ws"
MatchIsTouchpad "on"
EndSection

While I dont't expect bugs in the input processing part of the
driver ;-), it is difficult to assess how well the automatic
configuration covers the zoo of models out there, presumably it will
need some more fine-grained distinctions of hardware properties. I
would like to know where it works, works only halfway, or doesn't work
for you. As always, a dmesg would be appreciated. The output of
# wsconsctl | grep 'mouse'
could also be of interest here (you must run it as root).

For now, X will treat the device like a mouse, please don't look for
touchpad-specific configuration options there. Tapping can be enabled
by the command
# wsconsctl mouse.tp.tapping=1
If there is more than one wsmouse device, you should look up which one
has the "tp" fields and if it's not the first one (wsmouse0), add the
index to the prefix, e.g.
# wsconsctl mouse2.tp.tapping=1

The base speed of the pointer can be adjusted by increasing or
decreasing the value of
# wsconsctl mouse.tp.scaling
Please don't confuse it with the 'mouse.scale' field.

# wsconsctl mouse.tp.swapsides=1
will invert the order of software buttons areas (swapping external
buttons must still be configured in X). If edge scrolling is
enabled, the scroll area will be at the left edge of the touchpad.

If you are using an external mouse device or a trackpoint, the command
# wsconsctl mouse.tp.disable=1
may be helpful. It will disable pointer movement, scrolling, and
tapping. External buttons and software buttons remain enabled.

No comments:

Post a Comment