首页 > 解决方案 > 无需 X 即可模拟击键的 Linux 程序

问题描述

我正在为 pda 编写驱动程序,目标是将 UART 接收到的键号转换为击键。

我目前设置这个系统的方式是,当收到一个密钥号码时,我可以执行一个程序。在配置中定义了如果我的驱动程序接收到某个数字,则执行什么命令。它通过fork()ing 和exec()ing 来做到这一点。它在启动时运行并立即解析这些键号,所以我打算使用它而不是真正的键盘。

那么有没有什么程序,我可以简单地做一些类似的事情

programname KEY_SPACE 1按 KEY_SPACE

programname KEY_SPACE 0释放KEY_SPACE?

这样的程序必须在没有 X 的情况下以及与 X 一起工作。我也希望它也能够执行鼠标事件,但是如果有不同的程序可以做到这一点,那对我来说很好。如果需要,它也可以以 root 身份运行。

标签: linuxlinux-kernelkeyboardlinux-device-driverkeyboard-events

解决方案


您需要的是使用 uinput,它允许从用户空间模拟输入设备。您在这里有文档:https : //www.kernel.org/doc/html/v5.11/input/uinput.html 它有一个示例显示如何发送 KEY_SPACE 按下事件,然后是 KEY_SPACE 释放事件。


推荐阅读