{{Short description|Linux kernel interface for input events}} {{lowercase title|evdev}} {{Distinguish|Systemd#eudev{{!}}eudev}} [[File:Linux API.svg|thumb|Evdev and libevdev form a prominent part of the Linux API.]]
'''evdev''' (short for 'event device') is a generic input event interface in the Linux kernel and FreeBSD.<ref>[https://www.kernel.org/doc/Documentation/input/input.txt "Linux Input drivers v1.0"]</ref> It generalizes raw input events from device drivers and makes them available through character devices in the <code>/dev/input/</code> directory.
The user-space library for the kernel component evdev is called libevdev. Libevdev abstracts the evdev ioctls through type-safe interfaces and provides functions to change the appearance of the device. Libevdev shares similarities with the read system call.<ref>{{cite web |url=https://www.freedesktop.org/wiki/Software/libevdev/ |title=freedesktop.org/../libevdev}}</ref>
It sits below the process that handles input events, in between the kernel and that process.
: kernel → libevdev → xf86-input-evdev → X server → X client
For Weston/Wayland compositor, the stack would look like this:
: kernel → libevdev → libinput → Wayland compositor → Wayland client
Since version 1.16 the xorg-xserver obtained support for libinput:
: kernel → libevdev → libinput → xf86-input-libinput → X server → X client
evdev is primarily used by display servers like X.org (via xf86-input-evdev driver and libevdev) and Weston, as well as by games and console emulators making use of USB and Bluetooth controllers.
==See also== {{Portal|Linux}} {{Commons category}}
== References == {{reflist}}
== External links == * [https://www.kernel.org/doc/Documentation/input/input.txt "Linux Input drivers v1.0"] by Vojtech Pavlik, 2001 (Linux kernel document, now somewhat dated) * [https://www.freedesktop.org/wiki/Software/libevdev/ libevdev, a C library for evdev interface] * [https://pythonhosted.org/evdev/ Python bindings for evdev interface] * [https://godoc.org/github.com/gvalkov/golang-evdev Go bindings for evdev interface] * [https://joeshaw.org/2010/10/01/681 "linux input ecosystem"] by Joe Shaw, 1 October 2010 (blog post)
{{Linux kernel}}
Category:Interfaces of the Linux kernel Category:Linux kernel features
{{Linux-stub}}