设置内核键盘映射

dai*_*isy 5 linux kernel acpid

我已经从内核中获得了密钥代码,但acpi_listen在 Arch Linux 中无法识别它:

# /usr/lib/udev/keymap -i /dev/input/by-path/platform-thinkpad_acpi-event
Press ESC to finish, or Control-C if this device is not your primary keyboard
scan code: 0x1A    key code: micmute
Run Code Online (Sandbox Code Playgroud)

现在我尝试通过以下方式映射密钥:

# /usr/lib/udev/keymap /dev/input/by-path/platform-thinkpad_acpi-event 0x01a micmute
setting scanode 0x1A to key code 248
Run Code Online (Sandbox Code Playgroud)

acpi_listen这里仍然没有输出。

我应该如何acpi_listen识别它?

更新2

好吧,evdev 驱动程序似乎没有意识到这一点,我听说有人说 xorg 不会路由超出限制的关键事件编号。

它必须作为 acpi 事件解决,但不知道如何

更新

看起来好复杂

$ xmodmap -e 'keycode 248 = XF86MicMute NoSymbol XF86MicMute'
xmodmap:  commandline:1:  bad keysym name 'XF86MicMute' in keysym list
xmodmap:  commandline:1:  bad keysym name 'XF86MicMute' in keysym list
xmodmap:  2 errors encountered, aborting.
Run Code Online (Sandbox Code Playgroud)

Old*_*Pro 1

问题是关键代码micmute超出范围,如本错误报告中所述。因此,您需要将扫描代码 0x1A 重新映射到范围内您未使用的其他关键代码。如果此解决方法不起作用prog2,您必须选择其他一些关键代码。您可以查看/usr/include/linux/input.h定义了哪些键代码,然后查看键盘映射以了解正在使用哪些键代码。请记住选择< 247 的密钥代码。