CapsLock + hjklを矢印キーにバインドする

CapsLock + hjklを矢印キーにバインドする

Caps Lock+ H /  J /  K /をL矢印キーにバインドしたいです。どちらの方法にもいくつかの問題があることがわかりました。

ソリューション1

使用xkb:/usr/share/X11/xkb/symbols/us最初のブロックを編集します。

            # replace Caps with AltGr
            key <CAPS> { [ ISO_Level3_Shift            ] };
            # Add vim cursor keys to be accessed with AltGr
            key <AB02> { [ x, X, Delete, Delete        ] };
            key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
            key <AC03> { [ d, D, Next, Next            ] };
            key <AC04> { [ f, F, BackSpace, BackSpace  ] };
            key <AC06> { [ h, H , Left, Left           ] };
            key <AC07> { [ j, J, Down, Down            ] };
            key <AC08> { [ k, K, Up, Up                ] };
            key <AC09> { [ l, L, Right, Right          ] };
            key <AD07> { [ u, U, Prior, Prior          ] };
            key <AE03> { [ 3, section, Home, Home      ] };
            key <AE04> { [ 4, dollar, End, End         ] };

ただし、この回答はJavaプログラム(IntelliJなど)では機能しないため、回避策2を使用する必要があります。

ソリューション2

使用法xmodmap:以下~/.xmodmapを含むファイルを生成します。

keycode 66 = Mode_switch
keysym h = h H Left
keysym l = l L Right
keysym k = k K Up
keysym j = j J Down
keysym u = u U Prior
keysym i = i I Home
keysym o = o O End
keysym p = p P Next

xmodmap ~/.xmodmapその後、コマンドを実行してください。

質問:このソリューションは他のレイアウトを壊します。英語では動作しますが、別のレイアウト(ロシア語など)に切り替えると、そのキーに文字を入力することはできず、再び英語に切り替えるまでCaps+ H ///も動作しません。この問題をどのように解決できますか?JKL

ベストアンサー1

Linuxでは強くお勧めします。
これ構成例 必要なものより多くを得ることができます(ただし、必要に応じて手動でトリミングすることができます)。

# Goal:
#
# To create a vi like navigation layer accessible by pressing H J K L while having capslock pressed
# otherwise behave like the control key (when held) and escape when tapped.
#
# In essence we want:
#
#  - capslock+h = left
#  - capslock+j = down
#  - capslock+k = up
#  - capslock+l = right
#
#  - capslock+shift+h = C-left
#  - capslock+shift+l = C-right
#  - capslock+shift+j = C-down
#  - capslock+shift+k = C-up
#
#  - capslock = escape (when tapped)
#
# In all other instances capslock should behave as normal control:
#
#  - capslock+a = C-a
#  - capslock+b = C-b
#  - capslock+c = C-c
#  ...
#  - capslock+shift+i = C-S-i
#  - capslock+shift+k = C-S-k
#  ....

モナード代わりになります

おすすめ記事