3 个版本
0.0.3 | 2020年6月26日 |
---|---|
0.0.2 | 2020年6月24日 |
0.0.1 | 2020年6月22日 |
#901 在 Unix API
每月下载 24 次
16KB
265 代码行
凝胶-O
凝胶-O 是一个用于操作 Linux 中用户输入的库。
凝胶-O 可以使您的计算机感觉像果冻,通过延迟可配置的毫秒数(以及各种其他方式)来延迟所有用户输入。
稳定性
凝胶-O 是实验性的。预计将会有许多破坏性的变化。
为什么?
为了好玩,并且让我了解一下情况。
要求
- Linux
- epoll(Linux 2.6.27+)
- evdev 内核(大约 Linux 2.4+)
- Rust 工具链
- 版本 1.34 或更高
- 传递依赖
- C 工具链
- autoconf 和 libtool
#apt install autoconf libtool
#yum install autoconf libtool
#pacman-S autoconf libtool
目前不支持 macOS 和 Windows。
由于最近 evdev 被添加到某些 BSD 内核中,因此可能很容易添加 BSD 支持
功能
- 可配置延迟
- 在 Xorg、Wayland 和 Linux 虚拟终端上运行
- 由于高效的基于 epoll 的架构,在低功耗设备(如树莓派)上运行流畅
- 与 Linux 所支持的所有输入设备(包括鼠标、键盘、电源按钮、游戏手柄、飞行杆等)一起工作
反功能
- 需要读取/写入对 /dev/input、/dev/uinput 中的文件的访问权限
如何使用
下载源代码
git clone [this repo]
编译源代码。您需要一个 Rust 工具链和 cargo。
cargo build --release --example delay
以 root 权限运行生成的二进制文件
sudo ./target/release/examples/delay [number of ms to delay]
待办事项
- 监视文件系统以获取新设备,并给它们也添加延迟(可能使用 inotify)
- 添加测试
- 创建可序列化的事件结构,以规避与 libevdev 的所有者问题
依赖项
~0.7-1MB
~23K SLoC