将 AltGr 映射到左侧控件

将 AltGr 映射到左侧控件

我使用以下命令将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/ctrlArchlinux 中拥有的软件包)。
打开/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_RControl_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

用户注意GnomeGnome覆盖xorg XKB选项,因此必须ctrl:ralt_rctrl通过gsettings(或dconf-editor)添加:

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

相关内容