uinput-ioctls

Crates.iouinput-ioctls
lib.rsuinput-ioctls
version0.1.0
created_at2025-10-31 19:59:54.577459+00
updated_at2025-10-31 19:59:54.577459+00
descriptionRust bindings for Linux uinput ioctl constants and helper macros.
homepage
repositoryhttps://github.com/joleuger/vuinputd
max_upload_size
id1910677
size8,279
Johannes (joleuger)

documentation

README

uinput-ioctls

uinput-ioctls provides Rust bindings and constants for the Linux uinput subsystem's ioctl interface.

It exposes ioctl_* helper functions and constants based on the Linux kernel's uinput.h, allowing you to interact with virtual input devices (keyboards, mice, gamepads, etc.) through Rust in a low-level but type-safe way.

This crate does not attempt to abstract or validate ioctl usage; it only provides constants and wrappers. Higher-level logic (such as event management or device configuration) should be built on top.


✨ Features

  • Idiomatic Rust wrappers around uinput ioctl definitions.
  • Uses the nix crate for safe ioctl macros.
  • Includes all UI_* constants and corresponding helper functions:
    • ui_dev_create, ui_dev_destroy
    • ui_dev_setup, ui_abs_setup
    • ui_set_evbit, ui_set_keybit, ...
    • ui_begin_ff_upload, ui_end_ff_upload, etc.

🧰 Example

Mouse example

Keyboard example

⚠️ Requires Linux and appropriate permissions to access /dev/uinput.


🧩 Related Crates

  • uinput: High-level abstraction for creating virtual input devices.
  • nix: Provides low-level Unix system call wrappers and ioctl macros.

📜 License

Licensed under the MIT License.


👤 Author

Johannes Leupolz dev@leupolz.eu

Commit count: 0

cargo fmt