如何拦截linux中最低级别的键盘输入?

Fut*_*Sci 5 c c++ linux keyboard

我有兴趣为linux编写一个程序,它将读取所有键击,处理它,然后输出到其余的正在运行的进程.基本上,所有键盘输入必须单独进入此程序和此程序...然后程序将充当计算机其余部分的键盘.我基本上想在Android设备上做类似预测文本的操作,所以我的程序将充当过滤器.

我问的基本上是如何将所有键盘事件指向我的程序.虽然我不是在寻找代码,但我想知道我必须学习哪些Linux编程/ linux系统才能完成这项任务?这个,因为我这样做是为了更好地学习linux.

小智 2

您不应该修改键盘驱动程序,因为这将要求您为每个键盘制造商提供解决方案。(并且有很多这样的解决方案......)

相反,您应该在将输入进一步传递到堆栈之前修补所有驱动程序调用的内核函数。

首先,您可以修补input_event,它通常由所有输入驱动程序调用,请参阅此处的文档(不仅是键盘,还包括鼠标和其他设备)

无论如何,您都必须“解码”输入扫描代码,您可能会发现文档很有用。

有关内核修补的更多信息,请阅读此处此处