Xorg:如何将 AltGr 映射到 CapsLock 键(以切换第三级符号)

Xorg:如何将 AltGr 映射到 CapsLock 键(以切换第三级符号)

许多其他的我都不需要CapsLock。我想重新分配它,使它具有功能AltGr。我使用 Kubuntu 9.10,但我认为一定有一个独立于发行版的解决方案。

我已经尝试使用setxkbmapxmodmapxmodmap至少我设法通过以下方式CapsLock使它表现得像Del这个描述

但我无法将AltGr行为分配给CapsLock

答案1

我知道这个问题已经很老了,但如果有人再次遇到它,还有另一种解决方案:

setxkbmap -option "lv3:caps_switch"

有关选项的完整列表,请阅读

man xkeyboard-config

答案2

根据丹尼斯的回答,并通过反复尝试,xev我发现这个神奇的短语似乎是ISO_Level3_Shift

至少这对我有用:

xmodmap -e "keycode 66 = ISO_Level3_Shift"

现在,在我使用德语键盘布局输入 [, ], {, } 等时,我不会遇到手指断裂的危险。

编辑:现在使用 xmodmap 的 -e 选项

答案3

Long 的答案对于 Gnome 等现代桌面来说是最好的,因为 Gnome 本身使用 xkb 并默认覆盖 xmodmap 配置(此外,xmodmap 即将淘汰且不受 Wayland 支持)。不幸的是,它仍然只能在重新启动之前工作。

您可以使用以下命令将此选项永久应用于您的 Gnome 桌面:

gsettings set org.gnome.desktop.input-sources xkb-options "['lv3:caps_switch']"

当然,您也可以永久更改此设置,甚至在系统范围内更改,而无需使用 Gnome。如果您使用 Gnome,您仍应使用上述命令来阻止 Gnome 覆盖此设置。对于/etc/X11/xorg.conf.d/90-custom-kbd.conf,您可以添加包含以下内容的文件:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "lv3:caps_switch"
EndSection

我认为这在不同的分布之间有所不同,所以你的里程可能会有所不同。

答案4

不幸的是,上面提供的解决方案对我不起作用。所以我找到了一种简单易行的方法,只需最少的“魔法”即可调整任何键。

  1. 以模式文件形式打开文件“/usr/share/X11/xkb/symbols/us”(或您使用的其他语言环境)sudo
  2. 找到与你的布局相同的章节。我使用 Colemak,所以对我来说它从第 3 行开始// Colemak symbols for xkb on X.Org Server 7.x
  3. 替换include "level3(ralt_switch)"include "level3(caps_switch)",保存更改。
  4. 重新启动 x 服务器以应用更改。

我最初的想法是将 vims 的“hjkl arrows”设置为第三级的 Colemacs“neio”(即,当按下 CapsLock 时,右手下方的键用作箭头)。我通过下一次重新配置实现了它:

键 { [ n, N, KP_Left, Ntilde ] }; 键 { [ e, E, KP_Down, Eacute ] }; 键 { [ i, I, KP_Up, Iacute ] }; 键 { [ o, O, KP_Right, Oacute ] };

相关内容