我做了一些研究,但找不到可行的解决方案:如何使我的键盘按钮:KP_1、KP_2、与、和KP_3完全相同?Shift_LAlt_LControl_L
我使用 Linux Mint 17 Cinnamon。
我希望新按键能够在 Dota 2 游戏中使用(但我不介意它们是否能够在全球范围内使用)。我尝试了不同的方法,但没有一个按预期工作:
xmodmap
我在终端运行:
xmodmap -e "keycode 87 = Shift_L"
xmodmap -e "keycode 88 = Alt_L"
xmodmap -e "keycode 89 = Control_L"
结果:
- 操作系统:KP_1并按KP_2其应有的方式工作(如Shift和Alt),但不知何故kp_3不按应有的方式工作Ctrl
- Dota 2: 、kp_1、kp_2都kp_3不起作用Shift// Alt(Ctrl为什么?)
remap.inc
文件
我添加了以下几行/etc/console-setup/remap.inc
keycode 79 = Shift
keycode 80 = Alt
keycode 81 = Control
然后运行
sudo dpkg-reconfigure console-setup -phigh
结果:在任何地方都不起作用。我不知道为什么这些键码与“xev”返回的不同,但这就是我使用转储键发现的:
sudo dumpkeys | egrep "^keycode.*KP_[123]"
keycode 79 = KP_1
keycode 80 = KP_2
keycode 81 = KP_3
xbindkeys
+xte
我将这些行添加到~/.xbindkeysrc
:
"xte 'key Shift_L'"
Mod2 + KP_End
并在终端中运行“xbindkeys”。
结果:在任何地方都不起作用(可能是因为Shift_L
只按下一次 - 我希望当我继续按下时它会保持按下状态KP_1,就像普通Shift按钮一样)。
答案1
如果要将新键映射为修饰键(如 Shift、Ctrl、Alt),仅使用keycode
withxmodmap
是不够的。你需要做类似的事情:
keycode 87 = Shift_L
clear shift
add shift = Shift_L
keycode 88 = Alt_L
clear mod1
add mod1 = Alt_L
keycode 89 = Control_L
clear control
add control = Control_L
手册页中有一些示例xmodmap(1)
。您可以将这些命令放入xmodmaprc
文件中并运行xmodmap xmodmaprc
(而不是多次xmodmap -e
调用)。