![Xorg:如何将 AltGr 映射到 CapsLock 键(以切换第三级符号)](https://linux22.com/image/1238352/Xorg%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%20AltGr%20%E6%98%A0%E5%B0%84%E5%88%B0%20CapsLock%20%E9%94%AE%EF%BC%88%E4%BB%A5%E5%88%87%E6%8D%A2%E7%AC%AC%E4%B8%89%E7%BA%A7%E7%AC%A6%E5%8F%B7%EF%BC%89.png)
许多其他的我都不需要CapsLock。我想重新分配它,使它具有功能AltGr。我使用 Kubuntu 9.10,但我认为一定有一个独立于发行版的解决方案。
我已经尝试使用setxkbmap
或xmodmap
。xmodmap
至少我设法通过以下方式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
不幸的是,上面提供的解决方案对我不起作用。所以我找到了一种简单易行的方法,只需最少的“魔法”即可调整任何键。
- 以模式文件形式打开文件“/usr/share/X11/xkb/symbols/us”(或您使用的其他语言环境)
sudo
。 - 找到与你的布局相同的章节。我使用 Colemak,所以对我来说它从第 3 行开始
// Colemak symbols for xkb on X.Org Server 7.x
- 替换
include "level3(ralt_switch)"
为include "level3(caps_switch)"
,保存更改。 - 重新启动 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 ] };