첫 번째와 두 번째 수준에서 사용하는 레이아웃은 QWERTY가 아닙니다.
key <AC06> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ m, M, Left, Home ]
};
key <AB01> {
type= "ALPHABETIC",
symbols[Group1]= [ x, X ]
};
레이아웃을 다시 QWERTY 키로 변경하려면 Ctrl(왼쪽 Ctrl 또는 왼쪽 Ctrl)이 포함된 키 조합을 원합니다.
Ctrl+<AB01>
따라서 내가 원하는 것을 입력하면 Ctrl+z
, 내가 ctrl+shift+<AB01>
원하는 것을 입력하면 됩니다 Ctrl+shift+z
. Ctrl+<AC06>
= Ctrl+h
잠깐
xkb가 이런 일을 할 수 있나요?
답변1
두 가지 중요한 폴더가 있습니다:
/usr/share/X11/xkb/symbols
이는 대부분의 배포판에서 Qwerty가 아닌 레이아웃의 위치입니다./usr/share/X11/xkb/types
수정자(예:Ctrl
또는Shift
) 동작에 사용됩니다.
Ctrl
4개의 공식 레벨이 있으며 , Shift
및 Lock
(일명) 과 호환됩니다 CapsLock
.
이 코드를 다음 위치에 추가했습니다 /usr/share/X11/xkb/types/level5
.
type "QWERTY_CONTROL" {
modifiers = Shift+Control+Lock;
map[None] = Level1;
map[Shift] = Level2;
map[Control] = Level3;
map[Shift+Control] = Level4;
preserve[Control] = Control;
preserve[Shift+Control] = Control;
map[Lock] = Level2;
map[Lock+Shift] = Level1;
map[Lock+Control] = Level4;
map[Lock+Shift+Control] = Level3;
preserve[Lock+Control] = Control;
preserve[Lock+Shift+Control] = Shift+Control;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
};
2번째 줄 뒤에 추가했습니다 partial default xkb_types "default" {
. 이제 대신
유형 이름을 사용해야 합니다 .QWERTY_CONTROL
FOUR_LEVEL_ALPHABETIC
키보드 레이아웃에 대한 코드입니다. 내 항목을 다음에 추가했습니다 /usr/share/X11/xkb/symbols/oo
.
partial alphanumeric_keys
xkb_symbols "half_qwerty" {
augment "level5"
name[Group1]="french ergodox compat";
key.type[Group1] = "QWERTY_CONTROL";
key <LatA> {[egrave, Egrave, a,A]};
key <LatS> {[eacute, Eacute, s,S]};
key <LatD> {[p, P, d,D]};
key <LatF> {[apostrophe, degree, f,F]};
};
그런 다음 실행하여 setxkbmap oo -variant half_qwerty
시도해 보세요. ( ), ( ) 및 가 가운데 행에
있어야 합니다 . 함께 사용하면 여전히 , , 입니다.è
egrave
é
eacute
p
'
Ctrl
a
s
d
f
참고: 여러 소프트웨어에서 테스트했습니다.
- MPV, Dolphin, Gedit, LibreOffice, Firefox, ST+ZSH, ST+NeoVim 및 Rofi와 함께 작동합니다.
- Chromium에서는 잘 작동하지 않습니다.