Keyboard
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
然後我使用上面第一行中的十六進制“值”(包含“EV_MSC”)在我的
70-keyboard.hwdb
文件中組成如下一行:KEYBOARD_KEY_7000f=rightctrl
我現在要重新映射的鍵是我的
KEY_KBDILLUMDOWN
鍵,當我執行evtest
辨識它的十六進制值時,我只得到一行輸出,而不是包含“EV_MSC”的行:Event: time 1639158417.741165, type 1 (EV_KEY), code 229 (KEY_KBDILLUMDOWN), value 1
如何在 udev 中重新映射此鍵?
也許這個按鍵事件是由 ACPI 驅動程序注入的(而不是真正的按鍵事件),在這種情況下,您可以通過 acpid 處理它。嘗試 acpi_listen(在 acpid 執行時)。事件處理程序位於正在呼叫處理程序的 /etc/acpi/events/ 中(預設位於 /etc/acpi/ 中)。
如果是這種情況,您可以編寫一個簡單的 evdev 包裝腳本來生成按鍵事件作為 acpi 事件的處理程序。有關範例,請參見此處。