我使用以下命令将AltGr密钥映射到:Ctrl
setxkbmap -option ctrl:ralt_rctrl
但是,当显示绑定时
xmodmap -pke
我可以看到键码关联到
keycode 108 = Control_R Control_R Control_R Control_R
我想绑定AltGr到左控件。是否可以?
这对于 Emacs 很重要,否则当使用原始 Left Control 或 AltGr 按下 CSb 时,我不会得到相同的输入。
答案1
它映射到 ,Control_R
这就是它在XKB
的符号中配置的方式CTRL。更改配置应该会导致Alt_R
映射到Control_L
.请注意,使用此方法,您的自定义配置将被任何未来的升级覆盖xkeyboard-config
(至少是/usr/share/X11/xkb/symbols/ctrl
Archlinux 中拥有的软件包)。
打开/usr/share/X11/xkb/symbols/ctrl
,向下滚动到此部分:
// right alt functions as another ctrl key
partial modifier_keys
xkb_symbols "ralt_rctrl" {
replace key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
modifier_map Control { <RALT> };
};
并替换Control_R
为Control_L
:
// right alt functions as another ctrl key
partial modifier_keys
xkb_symbols "ralt_rctrl" {
replace key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_L, Control_L ] };
modifier_map Control { <RALT> };
};
保存并重新启动 X 然后运行:
setxkbmap -option ctrl:ralt_rctrl
检查xmodmap
:
xmodmap -pke | grep 108
keycode 108 = Control_L Control_L Control_L Control_L
要使其永久添加setxkbmap -option ctrl:ralt_rctrl
到您的会话启动中。
或者,添加ctrl:ralt_rctrl
到您的xorg.conf.d
配置文件中,例如:
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Driver "evdev"
Option "XkbLayout" "us"
Option "XkbRules" "evdev"
Option "XkbOptions" "ctrl:ralt_rctrl"
EndSection
用户注意Gnome
:Gnome
覆盖xorg
XKB
选项,因此必须ctrl:ralt_rctrl
通过gsettings
(或dconf-editor
)添加:
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:ralt_rctrl']"