将小键盘按键重新映射到修饰符

将小键盘按键重新映射到修饰符

我做了一些研究,但找不到可行的解决方案:如何使我的键盘按钮:KP_1KP_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其应有的方式工作(如ShiftAlt),但不知何故kp_3不按应有的方式工作Ctrl
  • Dota 2: 、kp_1kp_2kp_3不起作用Shift// AltCtrl为什么?)

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),仅使用keycodewithxmodmap是不够的。你需要做类似的事情:

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调用)。

相关内容