6 个版本
0.0.7 | 2023年12月8日 |
---|---|
0.0.6 | 2023年4月26日 |
0.0.5 | 2020年6月30日 |
0.0.4 | 2020年4月22日 |
#106 in Unix API
3,453 每月下载量
在 3 crates 中使用
25KB
569 代码行
uhid-virt
uhid-virt 提供了围绕 uhid-sys 的安全包装
从 uhid-fs 分支,所以有什么变化?移除了 ArrayVec
依赖,并尝试写入借用切片而不是在所有地方创建和克隆新向量。尽可能使其成为 tokio_linux_uhid 的几乎直接替换。
什么是UHID?
UHID 允许您在 Linux 中为 HID 设备编写用户空间驱动程序。无需内核模块,只需运行您的程序,您就可以注册一个 HID 设备。
您可以使用此功能做很多事情,以下列举一些:
- 通过 控制守护进程 转发或模拟按键操作
- 模拟鼠标/键盘进行快捷键/宏/任务自动化(独立于X11/Wayland/系统控制台)
- 添加对仅在 Windows/其他平台上受支持的 HID 设备的支持
- 为新的 HID 设备编写驱动程序(例如 DIY Arduino 水触摸板)
内核文档描述
UHID 允许用户空间实现 HID 传输驱动程序。请参阅 hid-transport.html 以了解 HID 传输驱动程序的介绍。本文档大量依赖于其中声明的定义。
使用 UHID,用户空间传输驱动程序可以为用户空间控制的每个设备创建内核 hid 设备。UHID API 定义了从内核到用户空间以及反之的 I/O 事件。
请参阅 内核 UHID 文档页面 以获取对机制的全解释。
示例
请参阅示例文件夹。发送换行符将使鼠标向右移动。
请参阅 flukejones/rog-core 和 sameer/gearvr-controller-uhid 以了解真实世界的用例。
依赖项
~0.4–2.6MB
~54K SLoC