Evdev

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

  • iconLinux portal
Wikimedia Commons has media related to Evdev.

References

  1. ^ "Linux Input drivers v1.0"
  2. ^ "freedesktop.org/../libevdev".

External links

  • "Linux Input drivers v1.0" by Vojtech Pavlik, 2001 (Linux kernel document, now somewhat dated)
  • libevdev, a C library for evdev interface
  • Python bindings for evdev interface
  • Go bindings for evdev interface
  • "linux input ecosystem" by Joe Shaw, 1 October 2010 (blog post)
  • v
  • t
  • e
Linux kernel
Organization
Kernel
Support
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
  • icon Linux portal
  •  Free and open-source software portal
  • Category


Stub icon

This Linux-related article is a stub. You can help Wikipedia by expanding it.

  • v
  • t
  • e