Evdev

From Wikipedia, the free encyclopedia
Revision as of 17:47, 27 August 2024 by imported>Rublov (Adding local short description: "Linux kernel interface for input events", overriding Wikidata description "input handling of the Linux kernel")
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description Template:Lowercase title Script error: No such module "Distinguish".

File:Linux API.svg
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.[1] It generalizes raw input events from device drivers and makes them available through character devices in the /dev/input/ 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.[2]

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 → libinputWayland 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

Script error: No such module "Portal". Template:Sister project

References

Template:Reflist

External links

Template:Linux kernel


Template:Asbox

  1. "Linux Input drivers v1.0"
  2. Script error: No such module "citation/CS1".