XKB構成の `us:2`モード

XKB構成の `us:2`モード

これは私の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これは、2つのレイアウト、つまりバリアントとcustom基本usレイアウト(ファイルで定義された最初のレイアウトなど)を定義したことを意味します/usr/share/X11/xkb/symbols/us

最初のレイアウトは で表示されず、2 番目のレイアウト:1のみで表示され:2、3 番目のレイアウトは で表される:3式です。

あなたの設定はレイアウト間の切り替えのためのキーを定義しないので、GUIを通してのみ切り替えることができます。

たとえば、キーを押して切り替えることができる3つのレイアウト(アメリカ/基本、ドイツ語、ロシア語/音声)を定義できます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

たとえば、これによりマージされた3つのレイアウトが表示されます。\鍵の場合:

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ツールを使用して、ルートにならず、システムファイルやディレクトリを操作せずにカスタム設定をロードできます/usr/share

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

最後の行を追加することは、~/.xsession固定キーボード設定の強制ロードに対応するCを使用し、setxkbmap邪魔にならないように簡単に説得できない「最新の」デスクトップ環境に適用される場合と適用されない場合があります。

関連情報