libinput
libinput is an input stack for processes that need to provide events from commonly used input devices such as
- mice
- keyboards
- touchpads
- touchscreens
- graphics tablets
- virtual absolute pointing devices such as those used by QEMU or VirtualBox
- switches (lid switch and tablet mode switch)
- trackpoints and pointing sticks
A notable absent input device type is the joystick.
Wayland
libinput is not used directly by Wayland applications, rather it is used a an input stack used by the compositor.
X.Org
X applications use libinput indirectly through the custom xf86-input-libinput driver.