我编写了一个文件/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 事件的处理程序。看这里举些例子。