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
모든 응용 프로그램에서 완벽하게 작동해야 합니다.
이 답변에 대해 자세히 설명하고 나중에 더 완전한 예를 제출하겠습니다.