3 个版本

0.0.3 2020年6月26日
0.0.2 2020年6月24日
0.0.1 2020年6月22日

#901Unix API

每月下载 24 次

MIT/Apache

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