当我不知道密钥代码时,Udev hwdb 重新映射密钥

当我不知道密钥代码时,Udev hwdb 重新映射密钥

我编写了一个文件/etc/udev/hwdb.d/70-keyboard.hwdb来重新映射我的一些键盘按键。我想重新映射一个附加键,但我无法弄清楚应该使用什么标识符。

通常,我运行evtest并按下键盘按键以获得如下输出:

Event: time 1639158329.532434, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7000f
Event: time 1639158329.532434, type 1 (EV_KEY), code 38 (KEY_L), value 1

70-keyboard.hwdb然后,我使用上面第一行中的十六进制“值”(包含“EV_MSC”)在我的文件中组成如下行:

 KEYBOARD_KEY_7000f=rightctrl

我现在要重新映射的密钥是我的KEY_KBDILLUMDOWN密钥,当我运行evtest以识别其十六进制值时,我只得到一行输出,并且它不是包含“EV_MSC”的行:

Event: time 1639158417.741165, type 1 (EV_KEY), code 229 (KEY_KBDILLUMDOWN), value 1

如何在 udev 中重新映射该键?

答案1

也许这个按键事件是由 ACPI 驱动程序注入的(而不是真正的按键事件),在这种情况下您可以通过 acpid 处理它。尝试 acpi_listen (当 acpid 运行时)。事件处理程序位于 /etc/acpi/events/ 中,它们正在调用处理程序(默认位于 /etc/acpi/ 中)。

如果是这种情况,您可以编写一个简单的 evdev 包装器脚本来生成按键事件作为 acpi 事件的处理程序。看这里举些例子。

相关内容