✓ Uses Rust 2018 edition
|0.0.5||Jun 30, 2020|
|0.0.4||Apr 22, 2020|
|0.0.3||Apr 21, 2020|
|0.0.2||Apr 20, 2020|
#81 in Unix APIs
149 downloads per month
uhid-virt provides a safe wrapper around uhid-sys
Forked from uhid-fs, so what changed? Removal of
ArrayVec dependency, and attempts to write in to borrows slices rather than creating and cloning new vectors everywhere. Where possible it tries to be an almost drop-in replacement for tokio_linux_uhid.
UHID lets you write userspace drivers for HID devices in Linux. No need for a kernel module, just run your program and you can register an HID device.
There are a lot of things you can do with this, to name a few:
- Forwarding or emulating keypresses through control daemon
- Emulate a mouse/keyboard for shortcuts/macros/task automation (independent of X11/Wayland/system console)
- Add support for HID devices that are only supported on Windows / other platforms
- Write drivers for a new HID device (i.e. DIY Arduino water touchpad)
UHID allows user-space to implement HID transport drivers. Please see hid-transport.html for an introduction into HID transport drivers. This document relies heavily on the definitions declared there.
With UHID, a user-space transport driver can create kernel hid-devices for each device connected to the user-space controlled bus. The UHID API defines the I/O events provided from the kernel to user-space and vice versa.
See the Kernel UHID doc page for a full explanation of the mechanics.
See the example folder. Sending a newline will make the mouse move to the right.