Crate evdevil

Source
Expand description

§evdevil: Rust bindings to evdev and uinput

This library provides an interface to the Linux and FreeBSD input device subsystem.

§Features

  • Ergonomic Rusty API designed for stability.
  • Exposes almost every evdev and uinput feature, including force-feedback and multitouch.
  • Device Hotplug support.
  • Light on dependencies.
  • FreeBSD compatibility.
  • async support via Tokio or async-io.

§Cargo Features

FeatureDescription
serdeImplements Serialize and Deserialize for many event code wrappers like Key, Rel, etc.
tokioUses tokio to enable async event reading using EventReader.
async-ioUses async-io to enable async event reading using EventReader.

§Rust Support

This library targets the latest Rust version.

Older Rust versions are supported by equally older versions of this crate. For example, to use a version of Rust that was succeeded 6 months ago, you’d also use an at least 6 month old version of this library.

Compatibility with older Rust versions may be provided on a best-effort basis.

§Development

§Testing

The crate is tested using end-to-end tests that create a virtual uinput device and then open it. This means the user running the tests needs to have permission to write to /dev/uinput and the input devices in /dev/input/event*.

Modules§

bits
A BitSet for values reported by evdev.
enumerate
Device enumeration.
event
Input event types and enumerations.
ff
Force-feedback support.
hotplug
Support for hotplug events.
reader
A convenient API for robustly reading device events.
uinput
Userspace input devices.

Structs§

AbsInfo
Information about an absolute axis (Abs).
Bus
Bus types that devices can be attached to the system with.
Evdev
A handle to an event device.
EventReader
Stores a userspace view of a device, and reads events emitted by it.
InputId
Input device ID.
InputProp
Input device properties.
KeyRepeat
Key repeat settings.
KeymapEntry
A device keymap entry translates a scancode to a keycode.
RawEvents
Reads raw InputEvents from an Evdev.
Scancode
A raw scancode emitted by a keyboard.
Slot
A multitouch slot index.
UnknownVariant
Error returned by FromStr implementations when no matching variant was found.
Version
An evdev subsystem version.

Functions§

enumerate
Enumerates all currently plugged-in Evdev devices.
enumerate_hotplug
Enumerates all currently plugged-in Evdev devices, and future hotplugged devices.