X11 看不到 255 以上的键码,那么如何将这几个键重新映射到 255 以下的间隙中?
/usr/lib/keymap
存在于 raring 中,其工作原理如下:
1. 钥匙识别:
sudo /lib/udev/keymap input/event3
> scan code: 0xC1021 key code: zoomreset => 100%
> scan code: 0xC101F key code: zoomin => zoom -
> scan code: 0xC1020 key code: zoomout => zoom +
> scan code: 0xC0192 key code: calc => calculator
2. 重新映射按键:
sudo /lib/udev/keymap input/event3 0xC1021 phone
sudo /lib/udev/keymap input/event3 0xC101F sport
sudo /lib/udev/keymap input/event3 0xC1020 shop
sudo /lib/udev/keymap input/event3 0xC0192 www
它很棒、简单又快捷……
xmodmap 适用于小于 255 的键,例如我的计算器键(代码 148)
sudo evtest /dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x46d product 0xc517 version 0x110
Input device name: "Logitech USB Receiver"
...
Testing ... (interrupt to exit)
> Event: time 1381940761.592647, type 1 (EV_KEY), code 140 (KEY_CALC), value 1 => calculator
> Event: time 1381940790.224658, type 1 (EV_KEY), code 420 (KEY_ZOOMRESET), value 1 => 100%
> Event: time 1381940810.928667, type 1 (EV_KEY), code 419 (KEY_ZOOMOUT), value 1 => Zoom -
> Event: time 1381940836.216678, type 1 (EV_KEY), code 418 (KEY_ZOOMIN), value 1 => Zoom +
**编辑:我找到了解决方案ubuntuforum 帖子。
答案1
键盘映射仍然在 trusty(我猜也是 saucy)中完成udev
,但是机制已经改变。
要重新映射一个键,只ioctl(EVIOCSKEYCODE)
需要一个,但不再存在执行此操作的简单程序。它现在位于 udev 内部。因此请执行以下操作:
- 告诉 udev 映射
- 创建文件
/etc/udev/hwdb.d/keyboard.hwdb
- 只在其中写入键盘标识符和您想要更改的映射(格式类似于
/lib/udev/hwdb.d/60-keyboard.hwdb
,我也在其中发现了那些令人困惑的键盘标识符);例如:键盘:名称:ThinkPad 附加按钮:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* KEYBOARD_KEY_00=msdos KEYBOARD_KEY_09=prog3 KEYBOARD_KEY_0a=仪表板
udevadm hwdb --update
- 检查您是否通过以下方式看到更新
udevadm hwdb --test='keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*'
(更改为您的键盘 ID) udevadm control --reload
即使手册页另有说明,也是需要的——我试过了。
- 创建文件
- 触发其执行(或者简单地重启)
- 运行后
udevadm monitor --property
你就可以看到下一步的效果了,该--property
选项将显示重新映射 - 对于我的键盘,我执行
udevadm trigger --verbose --sysname-match=event6 --action=add
“添加操作”很重要,因为当前键盘规则中“更改”事件被忽略。 - 在你的情况下
--sysname-match=event3
可以做到这一点,但你可以通过以下三个方法来尝试:udevadm trigger --dry-run --verbose
显示所有设备- 激发你对匹配器构建的幻想,
udevadm info /sys/devices/platform/thinkpad_acpi/input/input12/event6
或者无论你的设备 udevadm trigger --help
会提示你如何减少下一次触发试运行
- 运行后