Re: synaptics vs libinput and GNOME 3.20 no longer supporting synaptics
[Disclaimer: I'm jumping in because of the LWN quote of the week and I'm
just reconstructing the emails from the archives, I'm not subscribed.
Apologies if the thread breaks or any other side effects. Please keep me in
On Tue, 2016-07-12 at 07:48 +0300, Lars Wirzenius wrote:
> For me, the opposite is true. After Raphael's mail yesterday, I
> switched from the synaptics driver to the xinput one (by removing
point of order :)
- synaptics == xf86-input-synaptics == old X touchpad driver
- libinput == the library to handle libinput, used by wayland compositors and
- xf86-input-libinput == the X driver wrapping libinput, though for simplicity
in most X context worring about the difference between the driver and
libinput doesn't matter
- xinput == a commandline tool to change X device properties and a couple of
other X Input Extension calls.
There's no "xinput" driver, and xinput is similar to tools like gsettings,
it has no knowledge of the other end, the properties API is a generic one.
synclient is a synaptics-specific tool that uses the same API that xinput
uses but because it's synaptics specific it can have a more 'intuitive'
interface. (haha. as if TapButton1 was intuitive. anyway, you get the gist :)
> xserver-xort-input-synaptics) and since then, I've not had a single
> case of moving the mouse or clicking by tapping by accident. When the
> opposite change happened a few weeks ago, the accidents started
> happening with such frequency that I could barely finish a sentence in
> the same window I started it. As a result, I started pulling out my
> hair and when I had no hair left on my head, I switched to an external
> mouse. The doctors say I should make a complete hair-recovery and my
> barber is very happy about that.
> So for me, the "palm detection" that the xinput driver does, is very
> much better than what the synaptics driver does. This might be because
> the xinput driver is less smart than the synaptics one, but the end
> result for me is a massively better user experience. Tapping and
> two-finger scrolling work perfectly fine with the xinput driver, too.
libinput is a lot smarter than synaptics when it comes to palm
detection. there's only so much we can do with the data we get from
touchpads (it's pretty terrible) but the couple of things we do are:
we look for touches in areas on the touchpads that are likely palms and
monitor those touches. If they exhibit palm behaviour we ignore them.
And the touchpad monitors the keyboard and the trackstick (if any) for
activity and disables itself, depending on the input (without the need for
an external process like syndaemon). There are a couple of details synaptics
never had, for example if you rest your palm on the touchpad while typing
that palm won't generate touch events. But if you start a touch immediately
after the last key press that finger *will* generate touch events.
Both are common scenarios that need special treatment.