화살표 키를 시뮬레이션하고 다음 위치에 넣기 위해 xkb 형식의 사용자 정의 키보드 레이아웃을 만들었습니다 /usr/share/X11/xkb/symbols/custom
.
xkb_symbols {
name[Group1]= "English (US) with Caps mod";
key <ESC> { [ Escape, asciitilde, grave ] };
key <INS> { [ Insert, Insert, Caps_Lock ] };
key <TAB> { [ Tab, ISO_Left_Tab, Menu ] };
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
};
다음 명령으로 활성화한 후:
setxkbmap -layout custom -option lv3:caps_switch
성가심을 제외하면 예상대로 작동합니다. Caps+{H,J,K,L}
시뮬레이션된 화살표 키를 사용하여 탐색할 수 있지만 다른 수정자와 결합하는 것은 불가능합니다. 예를 들어, 또는 )
조합이 작동하지 않아 일반 화살표 키를 사용해야 합니다.Super+Caps+{H,J,K,L}
Ctrl+Shift+Caps+{H,J,K,L}
작동하게 하는 방법이 있습니까? 아니면 이것이 xkb의 제한 사항입니까?
답변1
두 사람이 그 옵션을 사용하도록 할 수는 없었습니다 lv3:caps_switch
. 아날로그 화살표 키는 대문자에 대해 별도의 2단계 수정자가 정의된 경우에만 다른 수정자(예: SUPER)와 함께 사용할 수 있습니다.
나는 de 레이아웃을 기본으로 사용했지만 다른 레이아웃에서도 작동해야 합니다. 내 새 /usr/share/X11/xkb/symbols/custom
파일 은 다음과 같습니다 ( setxkbmap -layout custom -variant 5layer
활성화할).
default partial alphanumeric_keys xkb_symbols "5layer" {
include "de(basic)"
include "ansi_hybrid(caps_layer)"
include "ansi_hybrid(ralt_layers)"
};
partial modifier_keys xkb_symbols "caps_layer" {
// caps layer key definitions
replace key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Overlay1_Enable, Overlay1_Enable ],
actions[Group1] = [ SetControls(controls=Overlay1),
SetControls(controls=Overlay1) ]
};
key <LatH> { Overlay1 = <LEFT> };
key <LatJ> { Overlay1 = <DOWN> };
key <LatK> { Overlay1 = <UP> };
key <LatL> { Overlay1 = <RGHT> };
};
partial modifier_keys xkb_symbols "ralt_layers" {
// base, shift, ralt, shift+ralt layers key definitions
key <CODE> { [ base, shift, ralt_base, ralt_shift_symbol ] };
};