カスタム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";
};
私は次の2行に興味があります。
preserve[Lock+LevelThree]= Lock;
preserve[Shift+Lock+LevelThree]= Lock;
残念ながら、Archwiki(非常に優れたxkb構成ガイドがあります)やxkbの公式ウェブサイト(一般的に多くの情報はありません)にはこれに関する情報がないようです。
答え1
XFree86はこれを記録します。新しいレイアウトを定義してXKB構成をさらに改善する方法。読者の便宜のために、関連する抜粋を複製した。
通常、リストに導入されたすべての修飾子は、
modifiers=<list of modifiers>
シフト作業レベルの計算に使用された後に削除されます。時にはこれは望ましくありません。シフト計算に修飾子を使用したいが破棄したくない場合は、リストできますpreserve[<combination of modifiers>]=<list of modifiers>
。つまり、特定の組み合わせに対してリストされているすべての修飾子が保存されます。ロック修飾子が保持されると、結果シンボルは、シフトレベルの計算に使用されたかどうかに関係なく、内部大文字ルーチンに渡されます。