我有一台笔记本电脑,我将以下内容保存到/etc/udev/hwdb.d/90-custom-keyboard.hwdb
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_1a=a
KEYBOARD_KEY_1b=b
并运行
$ sudo udevadm hwdb --update && sudo udevadm trigger
以刷新键映射。
现在,这是一个虚拟外壳,可以用任何 USB 或 dmi 键盘替换[和]键。但是,我只能在笔记本电脑的键盘上看到更改,而在其他键盘(有线和另一个无线 USB 键盘)上却看不到。我确信对于我想要重新映射的按键,我拥有的所有键盘都会发送相同的扫描代码。ab
我正在使用 Arch Linux 并且这是我一直在看的教程。
我需要做什么才能使重新映射对将来要插入的所有 USB 键盘有效?
答案1
USB 键盘的扫描码不是您所期望的,它们不是showkey -s
.相反,您几乎必须使用它evtest
来获取所需的扫描码。
输出示例evtest
:
Event: time 1399420905.069693, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1399420905.069693, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1399420905.069693, -------------- SYN_REPORT ------------
您需要后面的值,在本例中,它告诉我们映射到键 ( )MSC_SCAN
的按钮的扫描码为。AKEY_A
70004