xkb:修飾子として表示されず、キーを使用してシフトレベルを変更する

xkb:修飾子として表示されず、キーを使用してシフトレベルを変更する

別のキーを生成する方法として使用するようにXKBを設定したいが、Caps Lock修飾子として表示したくありません。たとえば、

  • F1F21キー入力の生成
  • Caps Lock+ キー押下のF1生成F1(つまり、修飾子なし)
  • Shift+ Caps Lock+ キーストロークのF1生成Shift + F1(Shift修飾子としてのみ計算)

Caps Lockに割り当てて部分的に成功しましたが、Hyper_R問題はHyper_R修飾子に設定されている場合にのみ機能することです(例:)Mod3。つまり、++Shiftリスナーが使用するショートカットは表示されるのが好きではないため、実際には何の効果もありません。Caps LockF1Shift + Mod3 + F1Shift + F1Mod3

Caps LockXアプリケーションで実際に修飾子キーとして表示されずに特定のキーの動作を変更する方法はありますか?

私が読んだ文書は、高度なXKB構成を介してこれが可能であることを示していますが、詳細は見つかりません。

ベストアンサー1

古い内容なので申し訳ありません。遅すぎても、他の人にとってこのヒントが役に立つかもしれません。

あなたのものからtypes以下を追加します。

type "CapsShiftSpecial" {
    modifiers= Shift+Hyper;

    map[Shift]= Level2;
    preserve[Shift]= Shift;

    map[Hyper]= Level3;

    map[Shift+Hyper]= Level4;
    preserve[Shift+Hyper]= Shift;

    level_name[Level1]= "Base";
    level_name[Level2]= "Shift";
    level_name[Level3]= "Hyper";
    level_name[Level4]= "Shift Hyper";
};

その後、symbolsファイルには次の内容があります。

key <FK01>  { type[group1]="CapsShiftSpecial",
              symbols[group1]=[ F21, F21, F1, F1 ]};

キー入力(例えば、xevまたはemacs)を監視するプログラムは、まるでキーを押したかのように表示されます。F21Shift+F21F1Shift+F1

おすすめ記事