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

Download history 922/week @ 2024-04-23 1132/week @ 2024-04-30 3127/week @ 2024-05-07 2545/week @ 2024-05-14 1746/week @ 2024-05-21 1280/week @ 2024-05-28 1174/week @ 2024-06-04 1632/week @ 2024-06-11 968/week @ 2024-06-18 869/week @ 2024-06-25 807/week @ 2024-07-02 767/week @ 2024-07-09 801/week @ 2024-07-16 967/week @ 2024-07-23 843/week @ 2024-07-30 725/week @ 2024-08-06

3,453 每月下载量
3 crates 中使用

MIT/Apache

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-coresameer/gearvr-controller-uhid 以了解真实世界的用例。

依赖项

~0.4–2.6MB
~54K SLoC