GroupLatch は xkb を使用する特定のキーに対して Shift と連携しません。

GroupLatch は xkb を使用する特定のキーに対して Shift と連携しません。

私はドイツ語グループとキリル語グループに分かれたカスタムキーボードレイアウトを使用しています。CAPS2つの方法でバンクラッチとして使用されます。 「CAPS次のキー」または「CAPS+キー」は、現在のキーではなくグループ内のキーのキーシンボルを提供します。

「<」=94、「x」=53、「s」=39、および「w」=25の4つのキーを除いて、すべてがうまく機能します。CAPS+OneOfTheseKeys を押すとSHIFTキーボード記号は生成されません。 +KeyCAPSSHIFTすべてのキーで期待どおりに機能します。

これがハードウェアに関連しているのか(私のキーボードの隣接するキーである)か、私が見ることができない複雑さがあるのだろうか。

xkb_keymap 以下は、「s」記号(Shiftでロックが機能しない)と「d」= 40(ロックが機能する)を含む関連部分です。

xkb_keymap {
    //...
xkb_types "complete(slava)" {
    type "FOUR_LEVEL" {
        modifiers= Shift+LevelThree;
        map[Shift]= Level2;
        map[LevelThree]= Level3;
        map[Shift+LevelThree]= Level4;
        level_name[Level1]= "Base";
        level_name[Level2]= "Shift";
        level_name[Level3]= "Level3";
        level_name[Level4]= "Shift Level3";
    };
    // two levels: 1=base and 2=AnyOf(Control,Alt,LevelThree,Mod4).
    // I use it for caps without mod to latch group,
    // with any mod to switch groups
    type "CUSTOM_FOR_CAPS" {
        modifiers= Control+Alt+LevelThree+Mod4;
        map[Control]= Level2;
        map[Alt]= Level2;
        map[LevelThree]= Level2;
        map[Mod4]= Level2;
        level_name[Level1]= "Base";
        level_name[Level2]= "Control Alt LevelThree Mod4";
    };
    //...
};

xkb_compatibility "capslock(grouplatch)" {
    //...
    interpret Caps_Lock+AnyOfOrNone(all) {
        action= LatchGroup(group=+1);
    };
    indicator "Caps Lock" {
        !allowExplicit;
        groups= Group2;
    };
    //...
}

xkb_symbols "pc+de(de-slava)+de(ru-slava):2+capslock(grouplatch)" {
    name[group1]="German (slava)";
    name[group2]="Russian (Germany, phonetic-slava)";

    key <CAPS> { 
        type= "CUSTOM_FOR_CAPS",
        symbols[Group1]= [ Caps_Lock, ISO_Next_Group ],
        symbols[Group2]= [ Caps_Lock, ISO_Prev_Group ]
    };
    key <AC02> {
        type[group1]= "FOUR_LEVEL",
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           s,           S, dollar, dollar ],
        symbols[Group2]= [ Cyrillic_es, Cyrillic_ES, dollar, dollar ]
    };
    key <AC03> {
        type[group1]= "FOUR_LEVEL",
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           d,           D,    eth,    ETH ],
        symbols[Group2]= [ Cyrillic_de, Cyrillic_DE,    eth,    ETH ]
    };
    //...
};
};

ベストアンサー1

おすすめ記事