xkb を使用して複数の「レベル 3」修飾子を設定する方法

xkb を使用して複数の「レベル 3」修飾子を設定する方法

私はキーボード レイアウトを改善しようとしていますxkbが、デフォルトの 4 レベル (または 2 レベルと言ったほうがよいでしょうか? 用語がよくわかりません) を使用するとうまく機能しました。

そして括弧を開くときに、xkb のドキュメントが非常に不十分であることがわかりました (または、検索方法がわかりません)。レベルについて話す人もいれば、グループについて話す人もいます。レベルを Shift が最初、AltGr が 2 番目と定義する人もいます。また、基本文字が最初で、各組み合わせが増加すると考える人もいます。つまり、多くの矛盾があります。)

Mとにかく、いくつかのキーボードのキーのデフォルトの 4 つの「組み合わせ」は次のとおりです。

// Pressing   <M> <Shift+M> <AltGr+M> <Shift+AltGr+M>
key <AB07> { [ m ,    M    ,    mu   ,      mu       ] }; // m M µ µ

他の修飾子をミックスに追加することは可能ですか?

たとえば、R CtrlI に 1 つの追加修飾子を追加すると、6 通りの組み合わせが可能になります。

// Pressing   <M> <Shift+M> <AltGr+M> <AltGr+Shift+M> <RCtrl+M> <RCtrl+Shift+M>
key <AB07> { [ m ,    M    ,    mu   ,    mu         , comma  , semicolon] };// m M µ µ , ;

あるいは、3 つの修飾子すべてを使用した 8 通りの組み合わせもあります。
そして実際、いくつかのsymbolファイルにはキーワードを含む8レベルのマッピングがすでにあるようです。EIGHT_LEVEL

しかし、私は 1 つのキーで 42 通りの組み合わせを取得したいわけではありません。

むしろ、私は指にとって厄介な組み合わせを避けたいだけなので、次のように「直接アクセス」による限定された組み合わせのみを保持することを好みます。

// Pressing   <M> <Shift+M> <AltGr+M>  <RCtrl+M>  <RWin>+M
key <AB07> { [ m ,    M    ,  comma  , semicolon ,    µ   ] }; // m M , ; µ

他のキャラクターや動きもマッピングしたい(矢印、ホーム/エンド、ページアップ/ダウン)その他の未使用の修飾キー(CapsLock、NumLock)

これどうやってするの ?

どうもありがとうございます。

答え1

groupそこで、 「2 回のキーストローク」の目的を達成するために使用できます。

key <AB07> { 
type[group1]= "FOUR_LEVEL",
type[group2]= "TWO_LEVEL_BIS",
symbols[group1]= [ m ,    M    ,  comma  , NoSymbol],
symbols[group2]= [ semicolon ,    µ ] 
};

ここで、type TWO_LEVEL_BIS必要な修飾子を使用して を定義する必要があります。

実際のグループを増やすキーが何であるかを知っておくことは価値があるのでMode_switch、その定義を確認してください。

関連情報