AltGr+i,j,k,l をカーソルキーで正しく機能させるには?

AltGr+i,j,k,l をカーソルキーで正しく機能させるには?

(すでに質問したことがあります。しかし、答えが得られず、今ここで努力しています。 )

カーソルキーとAltGr + c、h、t、nなどの他のキー(qwertyがある場合はi、j、k、l)が必要です。私はカスタムキーボードレイアウトファイルを作成しました(参照:ここ)。デフォルトでは、レイアウトファイルをインポートし、関連する行を次のように変更しました。

key <AC09> { [ n, N, Right, Right ] };

私はこれを持っていて/usr/share/X11/xkb/symbols/nonpopそれをsetxkbmap nonpopロードします~/.xinitrc(私はDEを使用せずにAwesome WMを使用しています)。

そしてほとんど動作します。

  • たとえば、Firefoxでは、すべてがうまく動作します。たとえば、AltGr+n はカーソルを右に移動し、Shift+AltGr+n はテキストを選択します。 LyXのデフォルトのテキスト領域でも同様です。
  • MonoDevelopでは、カーソルはAltGr + nを介して移動しますが、Shift + AltGr + nは選択ではなくカーソルだけを移動します。 Shift + Rightは通常テキストを選択します。
  • NetBeansおよびLyXダイアログボックスで(Shift +)AltGr + nを押すと、何もしません。

私はこれらの他のプログラムがAltGrステータスを読み、それが悪いと思うと思います。それでは、私が望むように仕事をするようにする方法はありませんか?そうだ被覆層解決策かもしれませんが、まだ機能していません。

答え1

問題は、AltGrのような一般的な修飾子を使用するときにAltGrAltGr矢印を使用すると、プログラムが実際にそれを押したものとして扱うことです。したがって、Shift++はAltGr実際にiを押すかのようにプログラムを見てShift + Alt + Up、追加項目を追加するとAltプログラムが混乱します。可能であれば、Shift + Alt + Up同じ操作を実行するためのより多くのショートカットをプログラムに追加することでこれを防ぐことができます。Shift + Upあるいは、プログラムが知らない一般的でない修飾子を使用することもできます。

他の方法もありますが、これはより簡単で、私にとってはうまくいきました。英数字キーに「Group2」オーバーレイが生成されるため、Group2に切り替えると文字の代わりに矢印が表示されます。トグル(Caps Lock通常の動作のようにオン/オフ)または一時的(通常の動作のように押して有効)を介してShiftグループ2に切り替えることができます。

partial alphanumeric_keys
xkb_symbols "alpha_arrows" {
    key <AD07> {
        symbols[Group2]= [            Home ]  # u
    };
    key <AD08> {
        symbols[Group2]= [              Up ]  # i
    };
    key <AD09> {
        symbols[Group2]= [             End ]  # o
    };
    key <AD10> {
        symbols[Group2]= [           Prior ]  # p
    };
    key <AC07> {
        symbols[Group2]= [            Left ]  # j
    };
    key <AC08> {
        symbols[Group2]= [            Down ]  # k
    };
    key <AC09> {
        symbols[Group2]= [           Right ]  # l
    };
    key <AC10> {
        symbols[Group2]= [            Next ]  # ;
    };
    key <AB06> {
        symbols[Group2]= [          Delete ]  # n
    };
};

その後、Group2 アクティベーションキーとして使用するキーを選択できます。次のコマンドを使用してすべてのオプションを表示できます(直接実行したくない場合)。

$ grep grp /usr/share/X11/xkb/rules/base.lst

Caps Lock次に、押している間だけ矢印を有効にするオプションなどのオプションを選択します。また、実際にCaps Lockをオン/オフする新しいコンボAlt+も追加されます。Caps Lock

$ setxkbmap -option grp:caps_switch

これをXorg構成ファイルに追加して、変更を永続的に適用できます。これを行う方法に関するオンラインガイドがたくさんあります。

気づく:

  • keyreplace key既存の定義を置き換えるのではなく、追加したいので代わりに使用されます。
  • 実際には、代替キーボードレイアウト(ラテン語/英語文字も入力できるいくつかの国際キーボード)がある場合、この方法は適切ではない可能性があります。ALPHANUMERIC矢印キーを有効にするには、拡張修飾子(Hyperなど)に基づいて新しいタイプを定義する必要があります。

答え2

私のxkb設定スクリプトに興味があります。簡単に言えば、MiniguruとTEX Yodaのシミュレーションを定義しました。

http://github.com/frgomes/carpalx

関連情報