我已经从内核获得了密钥代码,但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
现在我尝试通过以下方式映射密钥:
# /usr/lib/udev/keymap /dev/input/by-path/platform-thinkpad_acpi-event 0x01a micmute
setting scanode 0x1A to key code 248
但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.
答案1
问题是关键代码micmute
超出范围,如所解释的在这个错误报告中。因此,您需要将扫描代码 0x1A 重新映射到范围内您未使用的其他关键代码。如果这个解决方法使用prog2
不起作用,您必须选择其他一些关键代码。你可以看看/usr/include/linux/input.h
查看定义了哪些关键代码,然后看看你的键盘映射查看正在使用哪些关键代码。请记住选择< 247 的密钥代码。