如何将Linux密钥从/ dev/input/event*转换为ASCII

Jer*_*irk 6 linux embedded ascii keycode

我正在尝试将从/ dev/input/event0读取的键盘事件从定义的值转换为未运行X或终端的嵌入式应用程序中的ASCII等效项.

我认为这应该通过Linux中定义的键盘映射功能来完成,而不仅仅是创建我自己的std :: map <>但我似乎无法找到一个好的起点.到目前为止,我发现的大多数示例都假设我使用的是X窗口或终端.

And*_*oss 1

文本输入(除了非常简单的传统美国键盘和 7 位 ASCII 标准)是一个极其复杂的领域。我强烈建议您使用 X 客户端来执行此操作,您可以在其中利用所有现有的输入方法。

但是,如果您必须这样做,并且您对一种键盘和一种语言感到满意,您可以通过像终端一样解释事件来实现这一点。/usr/include/linux/input.h检查值的定义。跟踪 Shift 和 Ctrl 键的位置(当然,Alt、Fn 等非 ASCII 键由您来解释)并在按键事件上发出相应的字节。如果默认设置不适用于您的应用程序,也许您也想实现自动重复功能。

但基本上:不要。这是一个比您想象的要困难得多(!)的问题。