From Fedora Project Wiki

Revision as of 13:48, 11 December 2014 by Jreznik (talk | contribs) (Change Announced on 2014-11-12)

Change xorg input stack to use libinput

Summary

Replace the current (low-level) input xorg drivers with libinput using the xorg-x11-drv-libinput wrapper.

Owner

  • Name: Hans de Goede
  • Email: hdegoede@redhat.com
  • Release notes owner:

Current status

  • Targeted release: Fedora 22
  • Last updated: November 21th 2014
  • Tracker bug:

Detailed Description

Currently xorg uses different input drivers depending on the device type. This makes it impossible to do things like middle button scrolling on the trackpoint on laptops where the trackpoint buttons are software-emulated buttons on the touchpad. Besides this the xf86-input-synaptics driver was never really designed for multi-touch touchpads and this causes various issues.

For Wayland we've been working on a new improved input stack, which is to be shared by all compositors and lives inside libinput. We plan to replace the current (low-level) input xorg drivers with libinput using the xorg-x11-drv-libinput wrapper.

Benefit to Fedora

Improved user experience wrt input devices. libinput provides a number of features that are an improvement over the current evdev/synaptics driver set:

  • proper tracking of individual fingers on touchpads, improving the usability of software buttons
  • automatic disable-while-typing without having to run an external process
  • setting a device to left-handed doesn't change the tapping configuration
  • middle top software button can be used to emulate wheel events on the trackstick (on the Lenovo *40 series and related touchpads)
  • "natural scrolling" is device-wide and available on any scrolling device
  • improved palm detection

Scope

Besides xorg changes, this will also require changes to the control panel applets for mouse / touchpad configuration in the various desktop environments, as those all are hardcoded to use the xorg-x11-drv-synaptics specific interfaces.

  • Proposal owners:

Package libinput and xorg-drv-input-libinput (done), make sure that xorg-drv-input-libinput has the necessary config interfaces for control panel mouse/touchpad config applets (wip). Write patches for gnome-control-center mouse/touchpad capplet. Coordinate with other desktop environments.

  • Other developers:

GNOME: merge the gnome-control-center patches. KDE: limits itself to standard X11 mouse config interfaces, no changes needed. Other Desktop Environments: adjust control-panel code to deal with xorg-x11-drv-libinput, merge these changes.

  • Release engineering: N/A
  • Policies and guidelines: N/A

Upgrade/compatibility impact

No upgrade impact, the /usr/share/X11/xorg.conf.d rules will automatically use the new driver for relevant devices.

How To Test

Fire up new Fedora version, use keyboard, mouse and touchpads. Also try special features like 2 finger scrolling, click and drag, tap and drag, etc.

User Experience

We expect users to see a noticable improvement in touchpad behavior.

Synaptics provides some exotic options that libinput does not implement. We do not expect this to have significant impact as those options are rarely used (if at all).

Dependencies

None, but if desktop environments do not adapt, then their config panel mouse/touchpad settings may no longer work.

Contingency Plan

  • Contingency mechanism: We can switch back to the old drivers through some minor changes to the usr/share/X11/xorg.conf.d rules.
  • Contingency deadline: Beta freeze
  • Blocks release? No
  • Blocks product? N/A

Documentation

TODO

Release Notes

TODO