libinput is a library to handle input devices in Wayland compositors and to provide a generic X.Org input driver. It provides device detection, device handling, input device event processing and abstraction so minimize the amount of custom input code compositors need to provide the common set of functionality that users expect.

This wiki page provides high-level information, documentation about libinput's API and examples are available in the API documentation.


Earlier releases

As of the 0.12 release, the API/ABI is stable.

0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.10.0, 0.11.0, 0.12.0, 0.13.0, 0.14.0, 0.14.1, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.99.1

git Repository

  • git://
  • ssh://

cgit Web Frontend


Feature-specific documentation

Feature-specific documentation is available in the Related Pages section of the API documentation.

A note on feature requests


Source tarballs are available


Development and discusssion of libinput happens on the mailing list. Please submit patches to this list as well.

Reporting Bugs

libinput has a bugzilla component under the Wayland product Bugzilla

Note that in almost all cases we require extra information to be able to triage and fix the bug correctly. Please read the Reporting Bugs section.

X.Org libinput driver

The X.Org libinput driver is a thin wrapper around libinput and allows for libinput to be used for input devices in X. This driver can be used as as drop-in replacement for evdev and synaptics. Simply build and install in your $PREFIX, then install the config file in /etc/X11/xorg.conf.d/. Restart X and the libinput driver will take over your devices.