XKB 配置中的 `us:2` mod

XKB 配置中的 `us:2` mod

这是我的 XKB 配置:

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+gb(custom)+us:2+inet(evdev)"    };
    xkb_geometry  { include "pc(pc105)" };
};

是什么意思us:2

答案1

这意味着您已经定义了两种布局,gb及其custom变体和us默认布局(即文件中定义的第一个布局/usr/share/X11/xkb/symbols/us)。

第一个布局没有标记 a :1,只有第二个布局标记有 a :2,第三个布局标记有:3,依此类推。

您的配置没有定义任何在布局之间切换的键,因此它们可能只能通过 GUI 进行切换。

例如,您可以定义三种布局(美国/基本、德语和俄语/语音),可通过按键切换Menu

$ setxkbmap -layout us,de,ru -variant basic,,phonetic -option grp:menu_toggle
$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us(basic)+de:2+ru(phonetic):3+inet(evdev)+group(menu_toggle)+ctrl(nocaps)"  };
        xkb_geometry  { include "pc(pc105)"     };
};

如果您想查看完整的扩展 xkb 配置,可以使用以下命令:

xkbcomp $DISPLAY - | less

这将显示合并后的三个布局,例如。对于\关键:

xkb_symbols "pc+us(basic)+de:2+ru(phonetic):3+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" {

    name[group1]="English (US)";
    name[group2]="German";
    name[group3]="Russian (phonetic)";
...
    key <BKSL> {
        type[group2]= "FOUR_LEVEL",
        type[group3]= "ALPHABETIC",
        symbols[Group1]= [       backslash,             bar ],
        symbols[Group2]= [      numbersign,      apostrophe, rightsinglequotemark,      dead_breve ],
        symbols[Group3]= [      Cyrillic_e,      Cyrillic_E ]
    };

可以使用相同的xkbcomp工具来加载自定义配置,而无需成为 root 并处理其中的系统文件和目录/usr/share

xkbcomp $DISPLAY ~/.xkb_conf
# modify ~/.xkb_conf
# then load it:
xkbcomp ~/.xkb_conf $DISPLAY

添加最后一行~/.xsession可能适用于“现代”桌面环境,也可能不适用于“现代”桌面环境,这些环境使用 C 等效项强制加载固定键盘设置,setxkbmap并且不容易被说服不妨碍。

相关内容