HJKL を矢印キーとして使用するカスタム キーボード レイアウトが正しく機能しない

HJKL を矢印キーとして使用するカスタム キーボード レイアウトが正しく機能しない

私はキーボードレイアウトを、、、を矢印キー、、を第3および第4シフトレベルとして使用/usr/share/X11/xkb/symbols/するように設定しました。HJKLLeftDownUpRightこの郵便受け. はR. Alt私の代替文字キーです。

このカスタマイズは「基本的に」機能しますが、 と組み合わせて入力してテキストを選択することはできません。たとえば、 +の場合のように、+ +Shiftを押してテキストを選択することはできません。ただし、 を使用して単語全体をジャンプすることはできます。Alt GrShiftHShiftLeftCtrl

H、、は、Firefox の矢印 (および) とまったく同じように機能しますがJ、Gedit、Rhythmbox、Chrome では機能しません。他にも機能しない可能性があります...KLShiftCtrl

何かアイデアはありますか? 私は Ubuntu 14.04 を使用しています。


編集:私はドイツ語キーボードを使用していますAltGr。ファイルは次のとおりです。

キーボードレイアウトへのリンク

(リンクが機能することを願います)

答え1

に移動してタイプを追加してxkb/types/iso9995編集します"THREE_LEVEL"

  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";
    };
};

次にシンボルファイルに移動し、この形式を使用します

    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 ]     }; 

これ関連する質問ですが、そこからあなたの質問への答えを導き出すことができました。

関連情報