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
# ....
モナード代わりになります
答え2
ここの例をご覧ください。https://wiki.archlinux.org/index.php/X_keyboard_extension#Caps_hjkl_as_vimlike_arrow_keys
すべてのアプリケーションで完全に機能する必要があります。
この回答について詳しく説明し、後でより完全な例を提出します。