在Linux中设置或读取Caps Lock状态而不使用X-Windows

时间:2018-01-05 13:31:05

标签: embedded-linux capslock

我们正在为嵌入式应用程序运行Yocto Linux。我正在寻找一种通过bash提示或代码以编程方式控制Caps Lock状态的方法,设置状态或读取状态以便知道状态,而不使用X-Windows。我们没有安装X-Windows库,我们目前无法添加它们。我们发现搜索的所有解决方案都需要X-Windows库或使用X工具,例如xmodmap。任何帮助将不胜感激。这似乎是一件非常简单的事情,需要将X-Windows引入我们的嵌入式设备中。我们可以读一下sysfs条目吗?

这个问题类似于How can I turn on/off Caps Lock, Scroll Lock, Num Lock key programatically on Linux,但我正在寻找一种不需要X-Window库或实用程序的解决方案。

1 个答案:

答案 0 :(得分:0)

一点背景知识。大写锁定状态不是由键盘本身维护,而是由管理键盘的任何软件维护。键盘只需在每次按下大写锁定键时向软件发送一个代码,软件会判断是否打开或关闭大写锁定,相应地设置一个标记,然后向键盘发送命令以打开大写锁定LED或者关闭。

所以在这种情况下,如果你不使用X,我认为管理键盘的软件是Linux内核的控制台。这有许多ioctl可用于管理大写锁定标志,并分别用于管理LED状态。有关详细信息,请参阅man page console_ioctl(4)

还有一个setleds(1)程序(man page),可用于轻松发布这些ioctl。它是kbd工具包的一部分,似乎已经有了Yocto recipe

相关问题