在Linux中读取键盘输入

戈斯瓦米

我正在制作Ruby程序,因此按下键时可以播放不同的声音。键A会发出与键S不同的声音,依此类推。我想获取原始输入,而不是使用一些红宝石宝石。

例如,我可以读取/ dev / input / mice的所有鼠标事件。我可以在代码中使用它,以便它可以根据鼠标的移动来完成某些工作。

通过打开哪个文件,我可以获取所有键盘事件?

直接

这里涉及两层:input内核层,它将各种键盘,鼠标,操纵杆等转换为一个通用框架,并使它们在/dev/input/*设备文件(每个设备一个文件)中可用,以及X(或取决于您的发行版Wayland)层,该层读取这些文件,并将其转换为X事件,图形应用程序可以理解这些事件。后者组合了输入设备,并使它们可用作“来自任何设备的键盘事件”和“来自任何设备的鼠标事件”(这是一种简化,但是首先是近似的)。

应用程序的自然方法是与X层进行交互(我确信在那里是Ruby的抽象)。如果您的应用程序不仅播放声音,而且还显示某些内容(甚至不显示任何内容),则特别推荐这样做。

当然,如果您坚持认为,也可以打开中的所有文件/dev/input/*,并解释来自它们的事件,但这将在连接鼠标新键盘时失败,并且您也想对这些事件做出反应。

这种/dev/input/mice抽象仅适用于鼠标,并且是人们在使用单个PS / 2键盘时发明的一种传统解决方案,但是已经存在各种不同的鼠标设备。该文件可能与X层认为有效的鼠标输入设备不匹配,并且没有等效的键盘抽象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章