买了一个thinkpad tablet 的usb键盘, 发现contrl建其实是menu键,windows键其实是搜索键。
参考了这几篇文档:
步骤:
-
获取键的scan code :
sudo apt-get install evtest sudo evtest
获取到的scan code 是5位的16进制数
-
找到要映射的key code对应的key 名字:
less /usr/include/linux/input-event-codes.h (removing KEY_ and converting to lower case)
-
获取usb键盘的vendorID和productID: dmesg
4.修改/lib/udev/hwdb.d/60-keyboard.hwdb 或按这个文件中的提示新建/etc/udev/hwdb.d/70-keyboard.hwdb (按照这个文件中的提示让设置生效不行,请继续看下面)在最后添加:
# added by zwg to map thinkpad tablelit keyboard ctl and search key to nornal evdev:input:b*v1241p0003* KEYBOARD_KEY_c0040=leftctrl KEYBOARD_KEY_c0221=leftmeta
(注意: evdev要顶格写,下面那两行要空一格)
5.使设置生效
sudo udevadm hwdb --update sudo udevadm trigger --sysname-match="event*" (60-keyboard.hwdb中写的udevadm trigger /dev/input/eventXX 无法使设置生效,不知为何)可以用evtest查看有没有生效