解析kbd键盘映射以获取evdev值?

我正在为Linux编写一个Rust应用程序,该应用程序必须处理原始的evdev事件,有时将输入转换为unicode字符串(以及相反的方向)。

显然,将产生的字符串取决于用户选择的当前键盘布局。

在Linux中,键盘映射文件位于/ usr / share / kbd / keymaps下。但是,我没有解析器将这些值转换成可以被rust读取的东西(可以是自动生成的.rs文件或可以在运行时加载的文本文件)。

一个选择是从“ loadkeys --mktable”开始,该文件将生成一个c文件,内核可以使用该文件执行转换。但是我不确定如何解释此输出。它在表中产生的输入/输出值是什么?

例如:

static unsigned short shift_map[NR_KEYS] = {
        0xf200,0xf01b,0xf021,0xf040,0xf023,0xf024,0xf025,0xf05e,0xf026,0xf02a,0xf028,0xf029,0xf05f,0xf02b,0xf07f,0xf809,0xfb51,0xfb57,0xfb45,0xfb52,0xfb54,0xfb59,0xfb55,0xfb49,0xfb4f,0xfb50,0xf07b,0xf07d,0xf201,0xf702,0xfb41,0xfb53,0xfb44,0xfb46,0xfb47,0xfb48,0xfb4a,0xfb4b,0xfb4c,0xf03a,<snip>
        0xf200,0xf200,};

我假设此表是在按下Shift键时适用的映射。但是如何解释短值或索引?输入应为evdev事件代码,输出应为unicode字符。

qq8117513 回答:解析kbd键盘映射以获取evdev值?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3074914.html

大家都在问