Keyboard

Udev hwdb 在我不知道密鑰程式碼時重新映射密鑰

  • December 22, 2021

我寫了一個文件/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 事件的處理程序。有關範例,請參見此處

引用自:https://unix.stackexchange.com/questions/680961