web-dev-qa-db-ja.com

CapsLockキーの再マッピング

再マッピングしました CapsLock このように機能するための鍵:

CapsLockJLeft arrow key
CapsLockKDown arrow key
等。

私はxmodmapを使用しました( Super + hjklをXの下の矢印キーにマッピングする で説明されています)。

問題は、次のキーの組み合わせを機能させることができないように見えることです。

期待: CapsLockShiftJShiftLeft arrow key
実際: CapsLockShiftJ =何もしません。
等。

それを機能させる方法について何かアイデアはありますか?ありがとう。

7
varad

直接的な答えではありませんが、これにアプローチする最善の方法は、関心のある組み合わせを押したときに発生しているイベントを確認することです。これを行うには、xevをインストールし、さまざまなものを試してください。組み合わせ。

2
James Broadhead

私は同じ問題を抱えていて、 AskUbunt でそれを尋ねました。この問題は次の方法で解決できます。

保存パラメータの設定

/usr/share/X11/xkb/types/iso9995を編集し、ファイルの内容が次のようになるようにpreserve[Shift+LevelThree] = Shift;を追加します。

  partial default xkb_types "default" {

// A key type which can be used to implement
// an ISO9995-style level-three shift.

virtual_modifiers LevelThree;

type "THREE_LEVEL" {
    modifiers = Shift+LevelThree;
    map[None] = Level1;
    map[Shift] = Level2;
    map[LevelThree] = Level3;
    map[Shift+LevelThree] = Level3;
    preserve[Shift+LevelThree] = Shift;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Level3";
    };
};

目的のレイアウトに合わせてシンボルファイルをカスタマイズします

/usr/share/X11/xkb/symbols/のキーボードレイアウトファイルを次のように編集します(必要に応じて)

key <AC06>  { type="THREE_LEVEL", [   h,   H, Left  ]   }; 
key <AC07>  { type="THREE_LEVEL", [   j,   J, Down  ]   }; 
key <AC08>  { type="THREE_LEVEL", [   k,   K, Up    ]   }; 
key <AC09>  { type="THREE_LEVEL", [   l,   L, Right ]   }; 

好きではない

 ....
 key { [ j, J, Down, Down ] };
 ....
2
Marcelo Avila

それがどのように機能するかをよく理解している場合は、キーボード仕様ファイルを試して、たとえばシフトした場合など、必要なものを明示的に言ってみてください。

key { [ j, J, Down, Next ] };
key { [ k, K, Up, Prior ] }; 

pageDnとPageUpを使用する---今はチェックできませんが、動作するはずです。

0
Rmano

問題は、キーボードハードウェアでcapslockとshiftがほぼ同じである可能性があります。また、capslockキーがShiftキーを永続的にトリガーするだけである可能性があります。

0
Michael K