GroupLatch는 xkb를 사용하는 특정 키에 대해 Shift와 함께 작동하지 않습니다.

GroupLatch는 xkb를 사용하는 특정 키에 대해 Shift와 함께 작동하지 않습니다.

저는 독일어 그룹과 키릴어 그룹으로 구분된 사용자 정의 키보드 레이아웃을 사용합니다. CAPS두 가지 방법으로 뱅크 래치로 사용됩니다. " CAPS다음 키" 또는 " CAPS+키"는 현재 키가 아닌 그룹에 있는 키의 키 기호를 제공합니다.

"<"=94, "x"=53, "s"=39 및 "w"=25의 4개 키를 제외하고 모든 것이 잘 작동합니다. CAPS+ OneOfTheseKeys를 누르면 SHIFT키보드 기호가 생성되지 않습니다. +Key CAPSSHIFT모든 키에서 예상대로 작동합니다.

이것이 하드웨어와 관련된 것인지(내 키보드의 인접한 키들임) 아니면 내가 볼 수 없는 복잡성이 있는지 궁금합니다.

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 ]
    };
    //...
};
};

관련 정보