如何检测任何应用程序中的所有按键事件并将特定序列映射到命令?

How to detect all the key press events across any application and map certain sequences to commands?

我想编写一段代码来检测所有应用程序中的所有按键事件。然后代码会将某些特定序列映射到我定义的命令。

对于 e.g.if 我按 c,h,r,o,m,e,代码检测到这个序列并打开 chrome。

我没有意识到的微妙之处在于如何检测所有应用程序中的所有按键事件。

我的发现和调查
1. 我在 /dev/input 中阅读了有关设备文件的信息。看起来每个输入设备都有一个文件,所以,我可以读取与键盘对应的文件。虽然,我不确定这些设备文件的语义是什么。
2. 我知道有一种方法可以在 ubuntu 18.04 中通过导航到设置 -> 键盘来定义自定义键盘快捷键。但是这些快捷方式需要按住快捷方式中的所有键才能触发命令。但这对于我要实现的场景是不可行的。我希望序列的长度适中,足够长以至于很难同时按下所有键。

我在 linuxjournal.com 的第 2 部分 post 中找到了相关详细信息。 post 以初学者友好的方式详细介绍了 linux 内核的输入子系统。

此外,这里是 link evtest. Credits for this link goes to Ruslan

的源代码