Loading AI tools
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 |
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.
xf86-video-modesetting
) integrated into the server for basic video functionality.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]
The original code if libinput started as part of Weston. One rationale of taking the code out of Weston and making it the libinput library was to avoid code duplication as well as different bugs and features in the Wayland compositors.
The other rationale was to avoid of a huge testing matrix.
The libinput source code tarballs contain documentation written by the developers themselves! Unpacked Lininput release 1.5.3 comprises of 11 MB with the doc-directory taking up 7 MB.
High-level documentation is maintained at: https://wayland.freedesktop.org/libinput/doc/latest/pages.html
Additionally a couple of presentations/talks have been held at several X.Org Developer’s Conferences and there are also some blog entries.
libinput relies on udev to do device detection and support for hot-plugging. libinput maintains its own set of udev rules in the directory udev.
Most – if not all – available Wayland compositors make use of libinput. See List_of_display_servers#Wayland.
xf86-video-modesetting
) integrated into the server for basic video functionality.xf86-input-libinput
) into the server as well.The Weston code for handling input devices (keyboards, pointers, touch screens, etc.) was split into its own separate library, called libinput, for which support was first merged in Weston 1.5.[8][9]
Version | Date | Size1 (KiB) |
Release notes |
---|---|---|---|
0.1.0 | 2014-02-26 | 334 | 0.1 |
0.2.0 | 2014-05-22 | 356 | 0.2 |
0.3.0 | 2014-06-09 | 377 | 0.3 |
0.4.0 | 2014-06-25 | 385 | 0.4 |
0.5.0 | 2014-07-22 | 391 | 0.5 |
0.6.0 | 2014-09-11 | 399 | 0.6 |
0.7.0 | 2014-12-05 | 430 | 0.7 |
0.8.0 | 2015-01-15 | 493 | 0.8 |
0.9.0 | 2015-01-30 | 499 | 0.9 |
0.10.0 | 2015-02-06 | 501 | 0.10 |
0.11.0 | 2015-02-23 | 513 | 0.11 |
0.12.0 | 2015-03-09 | 526 | 0.12 As of the 0.12 release, the API/ABI is stable. |
0.13.0 | 2015-03-24 | 528 | 0.13 |
0.14.0 | 2015-04-21 | 556 | 0.14 |
0.14.1 | 2015-04-21 | 555 | 0.14.1 |
0.15.0 | 2015-05-05 | 560 | 0.15 |
0.16.0 | 2015-06-01 | 604 | 0.16 |
0.17.0 | 2015-06-04 | 608 | 0.17 |
0.18.0 | 2015-06-22 | 609 | 0.18 |
0.19.0 | 2015-07-06 | 613 | 0.19 |
0.20.0 | 2015-07-16 | 632 | 0.20 |
0.21.0 | 2015-08-04 | 643 | 0.21 |
0.99.1 | 2015-08-21 | 761 | 0.99.1 |
1.0 | 2015-08-26 | 767 | 1.0 |
1.0.1 | 2015-09-03 | 781 | 1.0.1 |
1.0.2 | 2015-10-21 | 780 | 1.0.2 |
1.1 | 2015-10-26 | 784 | 1.1 |
1.1.1 | 2015-11-15 | 773 | 1.1.1 |
1.1.2 | 2015-12-08 | 799 | 1.1.2 |
1.1.3 | 2015-12-15 | 797 | 1.1.3 |
1.1.4 | 2015-12-22 | 800 | 1.1.4 |
1.1.5 | 2016-01-25 | 788 | 1.1.5 |
1.1.6 | 2016-02-05 | 802 | 1.1.6 |
1.1.7 | 2016-02-10 | 805 | 1.1.7 |
1.1.8 | 2016-02-18 | 789 | 1.1.8 |
1.2 | 2016-02-23 | 846 | 1.2 |
1.2.1 | 2016-02-28 | 843 | 1.2.1 |
1.2.2 | 2016-03-15 | 837 | 1.2.2 |
1.2.3 | 2016-04-11 | 840 | 1.2.3 |
1.2.4 | 2016-04-19 | 837 | 1.2.4 |
1.3 | 2016-05-10 | 858 | 1.3 |
1.3.1 | 2016-05-29 | 860 | 1.3.1 |
1.3.2 | 2016-06-16 | 864 | 1.3.2 |
1.3.3 | 2016-06-24 | 861 | 1.3.3 |
1.4 | 2016-07-18 | 880 | 1.4 |
1.4.1 | 2016-08-05 | 877 | 1.4.1 |
1.4.2 | 2016-08-30 | 880 | 1.4.2 |
1.4.3 | 2016-09-23 | 878 | 1.4.3 |
1.5 | 2016-09-14 | 889 | 1.5 |
1.5.1 | 2016-11-11 | 905 | 1.5.1 |
1.5.2 | 2016-11-25 | 904 | 1.5.2 |
1.5.3 | 2016-12-07 | 907 | 1.5.3 |
1.6 | 2017-01-19 | 906 | 1.6 |
1 The size refers to the entire software tarred and then packed with xz. Unpacked release 1.5.3 has a size of about 11 MB with the src-directory taking up about 800KiB. The rest is documentation (about 7 MB), tests ( 1.2MB) and other stuff.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.