보존 키워드는 xkb 구성 파일에서 어떤 작업을 수행합니까?

보존 키워드는 xkb 구성 파일에서 어떤 작업을 수행합니까?

사용자 정의 xkb 키맵의 xkb_types 섹션에서 보존 키워드가 수행하는 작업을 알고 싶습니다.

다음은 기존 구성 파일의 예입니다.

type "FOUR_LEVEL_SEMIALPHABETIC" {
    modifiers= Shift+Lock+LevelThree;
    map[Shift]= Level2;
    map[Lock]= Level2;
    map[LevelThree]= Level3;
    map[Shift+LevelThree]= Level4;
    map[Lock+LevelThree]= Level3;
    preserve[Lock+LevelThree]= Lock;
    map[Shift+Lock+LevelThree]= Level4;
    preserve[Shift+Lock+LevelThree]= Lock;
    level_name[Level1]= "Base";
    level_name[Level2]= "Shift";
    level_name[Level3]= "Alt Base";
    level_name[Level4]= "Shift Alt";
};

나는 다음 두 줄에 관심이 있습니다.

    preserve[Lock+LevelThree]= Lock;
    preserve[Shift+Lock+LevelThree]= Lock;

불행히도 매우 훌륭한 xkb 구성 가이드가 있는 Archwiki나 xkb의 공식 웹사이트(일반적으로 많은 정보가 없음)에는 이에 대한 정보가 없는 것 같습니다.

답변1

XFree86은 이를 문서화합니다.XKB 구성을 더욱 향상시키는 방법 새 레이아웃 정의. 독자의 이익을 위해 관련 부분을 복사합니다.

일반적으로 목록에 도입된 모든 수정자는 modifiers=<list of modifiers>교대 수준 계산에 사용된 후 삭제됩니다. 때때로 이것은 바람직하지 않습니다. 교대조 계산에 수정자를 사용하고 싶지만 삭제하고 싶지 않은 경우 에 나열할 수 있습니다 preserve[<combination of modifiers>]=<list of modifiers>. 즉, 특정 조합에 대해 나열된 모든 수정자가 보존된다는 의미입니다. 잠금 수정자가 유지되면 결과 기호는 교대 수준 계산에 사용되었는지 여부에 관계없이 내부 대문자 루틴으로 전달됩니다.

관련 정보