我连接了一个外围设备,它实际上不是键盘,但它的所有按钮都被视为 F 键,它们都发送与标准 F 键相同的扫描码和键码(基于 showkey [-s] 和 xev)。我想更改外设的键码而不影响标准键,因此我选择了 udev 来根据制造商重新映射扫描码。
我现在遇到的问题是使用 udev 获取要重新映射的密钥。我创建了 /usr/lib/udev/hwdb.d/90-custom-keys.hwdb 进行测试(测试版本旨在更改所有键盘,一旦我可以工作,我将对其进行调整),如下所示:
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*
keyboard:*
KEYBOARD_KEY_1b=playcd (this should map F1 to keycode 200 like I want)
外围设备是 USB,添加的部分试图捕获所有内容以获得某种行为更改,这些更改是在前一个部分没有帮助后添加的。
此外,udev 似乎确实是基于ps aux | grep udev
.
我需要能够更改此外围设备发送的键码,这些键码将由另一个应用程序处理(需要特定的键码输入),并且我仍然想保留标准按钮。我怎样才能实现这个目标?
使用环境:
os: RHEL 7
udev ver: 208
arch: 86_64
答案1
我的问题是输入了错误的扫描码,规则不应该是
keyboard_key_1b=playcd
但
keyboard_key_7003a=playcd
您确实需要 evtest (showkey -s 提供的“扫描代码”不是您要寻找的)