我有一个烦人的英国键盘,它有一个Alt Gr键,而美国键盘上的右键Alt却在那儿。在使用 Gnome 时,这真的很烦人,因为 Gnome 大量使用Alt/Meta键。
有谁知道我如何将Alt Gr密钥映射到Alt密钥上?
答案1
xmodmap
左侧的“shift、lock、control、modN”是 X 看到并关注的。右侧的键盘符号与它们相对应。 Mode_switch
是你的 AltGr 键. 将其移动以加入其他内容mod1
:
xmodmap -e 'clear mod5'
xmodmap -e 'add mod1 = Mode_switch'
答案2
gnome 调整工具让你用 GUI 来做这件事:
打字 -> 选择第 3 级的键 -> 右 Alt 键永远不会选择第 3 级
答案3
对于那些仍然为此烦恼的英国用户来说,这个对我很有用:
xmodmap -e "clear mod5"
xmodmap -e "keycode 108 = Alt_L"
解释:第一行删除了 AltGr 的当前行为(分配给 mod5 修饰符)。第二行获取 AltGr 键(在我的键盘上产生键码 108),并将其映射到 Alt_L 键所映射的键码。
如果你不知道键码和键符是怎么回事,我发现了这个xmodmap 介绍很有用。
答案4
如果上述答案仍然不起作用,则运行xev -event keyboard
(您可能需要先安装它)并在事件测试器窗口处于焦点时按 AltGr。您应该在 shell 中看到类似以下内容。
KeyPress event, serial 163, synthetic NO, window 0x1600001,
root 0x119, subw 0x0, time 21667560, (151,737), root:(1111,764),
state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
在第三行,它提供了键码和键符名称,在我的情况下是ISO_Level3_Shift
。现在运行xmodmap
并检查输出,然后再执行
xmodmap -e "remove mod5 = ISO_Level3_Shift"
xmodmap -e "add mod1 = ISO_Level3_Shift"
如果需要,应将其中的内容ISO_Level3_Shift
替换为正确的键符号。最后,您需要将其添加到用户 rc 脚本中,以使其持久化。