User:ScotXW/libinput
From Wikipedia, the free encyclopedia
libinput is a library that handles input devices for display servers and other applications that need to directly deal with input devices.
Original author(s) | Jonas Ådahl, Hans de Goede, Peter Hutterer et al. |
---|---|
Preview release | 1.5.1
|
Written in | C |
Platform | Windows, Linux, OS X, Android(beta) |
License | MIT License |
Website | freedesktop.org/…/libinput |
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Libinput_for_Wayland_compositors.svg/320px-Libinput_for_Wayland_compositors.svg.png)
It provides device detection, device handling, input device event processing and abstraction so minimize the amount of custom input code the user of libinput need to provide the common set of functionality that users expect. Input event processing includes scaling touch coordinates, generating pointer events from touchpads, pointer acceleration, etc.
An incomplete list of features: middle mouse button emulation, middle-button scrolling on tracksticks, software button areas for clickpads, clickfinger-like behavior, two-finger and edge scrolling, touchpad gestures, device-specific pointer acceleration, touchpad accidental palm and thumb detection, multi-finger tapping.
With Wayland aiming to be the core of the future graphics stack, an input system was needed for Wayland compositors. A single input stack has the advantage that we don't have different bugs and features in every compositor.
The current stack used in Xorg is a conglomerate of independent pieces. The two most common drivers, evdev and synaptics, cannot talk to each other and have accumulated significant amount of cruft. The drivers are effectively untestable. Changing the drivers to be compatible with Wayland compositors is effectively a rewrite.
So we needed a new solution, and libinput is that solution. It handles all input devices and configuration. With the xf86-input-libinput driver it can be used as the backend on X devices.
- X.Org Server 1.18 shiped with the modesetting video driver (
xf86-video-modesetting
) integrated into the server for basic video functionality. - For X.Org Server 1.20 we want to integrate the libinput-wrapper input driver (
xf86-input-libinput
) into the server as well.
Libinput handles input devices for multiple Wayland compositors and also provides a generic X.Org Server input driver. It aims to provide one implementation for multiple Wayland compositors with a common way to handle input events while minimizing the amount of custom input code compositors need to include. libinput provides device detection (via udev), device handling, input device event processing and abstraction.[1]
Version 1.0 of libinput followed version 0.21, and included support for tablets, button sets and touchpad gestures. This version will maintain stable API/ABI.[2]
As GNOME/GTK+ and KDE Frameworks 5[3] have mainlined the required changes, Fedora 22 will replace X.Org's evdev and Synaptics drivers with libinput.[4]
With version 1.16, the X.Org Server obtained support for the libinput library in form of a wrapper called xf86-input-libinput.[5][6]