私はXKBを理解すると思ったが、明らかにそうではなかった。まず、XKBのデバッグを妨げる問題があります。xkbcomp $DISPLAY output.xkb
ファイルには次のセクションがあります(getを使用)。
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[NumLock+LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
まず、このタイプのコピーを作成したかったので、同じアイテムのすぐ下に別のタイトルにコピーして貼り付けました。
type "FOUR_LEVEL_MIXED_KEYPAD_CUS" {
modifiers= Shift+NumLock+LevelThree;
map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[NumLock+LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
パスを変更しました
key <KP2> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
};
入力する
key <KP2> {
type= "FOUR_LEVEL_MIXED_KEYPAD_CUS",
symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
};
(つまり、型名のみを変更しました。)
その後、次のようにファイルを再ロードしましたが、xkbcomp output.xkb $DISPLAY
キー2は以前と同じように機能しません(他のキーは変更されません)。デフォルトでは、修正を使用しない場合は、数字を印刷する前に直下ボタンを押すのと同じです(数値ロックが有効になっています)。 )。_CUS
名前から削除すると、以前と同じように動作します。
どちらのタイプが同じでなければなりませんが、どのようにこれが可能ですか?