Sunday, November 20, 2016

Fedora - retiring xorg-x11-drv-synaptics

The Fedora Change to retire the synaptics driver was approved by FESCO. This will apply to Fedora 26 and is part of a cleanup to, ironically, make the synaptics driver easier to install.

Since Fedora 22, xorg-x11-drv-libinput is the preferred input driver. For historical reasons, almost all users have the xorg-x11-drv-synaptics package installed. But to actually use the synaptics driver over xorg-x11-drv-libinput requires a manually dropped xorg.conf.d snippet. And that's just not ideal. Unfortunately, in DNF/RPM we cannot just say "replace the xorg-x11-drv-synaptics package with xorg-x11-drv-libinput on update but still allow users to install xorg-x11-drv-synaptics after that".

So the path taken is a package rename. Starting with Fedora 26, xorg-x11-drv-libinput's RPM will Provide/Obsolete [1] xorg-x11-drv-synaptics and thus remove the old package on update. Users that need the synaptics driver then need to install xorg-x11-drv-synaptics-legacy. This driver will then install itself correctly without extra user intervention and will take precedence over the libinput driver. Removing xorg-x11-drv-synaptics-legacy will remove the driver assignment and thus fall back to libinput for touchpads. So aside from the name change, everything else works smoother now. Both packages are now updated in Rawhide and should be available from your local mirror soon.

What does this mean for you as a user? If you are a synaptics user, after an update/install, you need to now manually install xorg-x11-drv-synaptics-legacy. You can remove any xorg.conf.d snippets assigning the synaptics driver unless they also include other custom configuration.

See the Fedora Change page for details. Note that this is a Fedora-specific change only, the upstream change for this is already in place.

[1] "Provide" in RPM-speak means the package provides functionality otherwise provided by some other package even though it may not necessarily provide the code from that package. "Obsolete" means that installing this package replaces the obsoleted package.


Pacho Ramos said...

Why is synaptics taking precedence over libinput again even if it's meant to be replaced sooner or later?

Peter Hutterer said...

Pacho: so that when users install it (for whatever reason) it works immediately without any extra configuration.

Pacho Ramos said...

The problem is that it's being a problem for us (downstream Gentoo) because it's common on people to have, for example, synaptics driver too since some desktops (Cinnamon, MATE...) don't support libinput yet. Hence, we need to ask people to manually configure Xorg if they want to give preference to Gnome

The main issue for us is to force people to *uninstall* the other drivers (synaptics, evdev... and I am not sure about wacom as, if I don't misremember, wacom was being used only on certain devices not handled by libinput).

Peter Hutterer said...

Pacho: that's a distribution-specific question then. For Fedora, I'm ok with telling people to uninstall synaptics. Upstream the same. For Gentoo, you'll have to figure out the best approach for you.

Note that this change here was Fedora specific. I you just plainly install everything from git, synaptics already has had a higher priority since libinput 0.20.0.

Cinnamon has the code to support libinput (I wrote it). MATE is currently being worked on.

As for wacom: yes, it overrides libinput in the same way as synaptics does but these days libinput works for tablets as well.

Pacho Ramos said...

OK, thanks

Lets see how do we handle it

See you!

jruaj said...

what is the status on Fedora 25 please. on a fresh install, which driver takes care of my wacom? does F25 finally use libinput for wacom by default? I'm Xorg and the touch functionality does feel more responsive (less lag when compared to F24) but the pointer seems to move a bit tooo fast and tap seems too sensitive (but there is a bug open for that already)

Peter Hutterer said...

jruaj: F25 uses xorg-x11-drv-libinput by default for (almost) everything, if you install the xorg-x11-drv-wacom package then your tablets will be handled by that driver (otherwise libinput too).

jruaj said...

thank you, i've figured it out with the help of makruiten here:

for me the situation was as he described it; on a fresh F25 install, xorg-x11-drv-libinput was installed so I had to remove it(now i don't have the wacom control panel in gnome settings and can't configure my pen buttons". the tablet now behaves a bit differently(better), even multitouch like pinch zoom seems to work sometimes (well it only registers like 5% of my pinch-gestures attempts). also, the cursor seems to lag a bit less now for touch, makes me so happy already :)