내 사용자 정의 키보드 레이아웃에는 이미 다음 줄이 있습니다.
// row 1 (E)
key <TLDE> { [ question, exclam, masculine, ordfeminine ] };
key <AE01> { [ braceleft, 1 ] };
key <AE02> { [ bracketleft, 2, periodcentered ] };
key <AE03> { [ parenleft, 3, EuroSign ] };
key <AE04> { [ less, 4 ] };
key <AE05> { [ slash, 5 ] };
key <AE06> { [ apostrophe, quotedbl, dead_diaeresis ] };
key <AE07> { [ equal, plus ] };
key <AE08> { [ backslash, 6, notsign ] };
key <AE09> { [ greater, 7 ] };
key <AE10> { [ parenright, 8 ] };
key <AE11> { [ bracketright, 9, exclamdown ] };
key <AE12> { [ braceright, 0, questiondown ] };
이것은 행 1(문자 너머 기능 키 아래 행)입니다.
예를 들어 이제 숫자 1을 누르면 가 입력되고 {
, Shift+1을 누르면 가 입력됩니다 1
. 매우 좋은. 그런데 Capslock을 누르면 {
역시 내가 원하는 대로 들어갑니다 1
. Capslock은 글자에 작동합니다.
이제 문자와 이 행에는 Caps Lock을 적용하고 Shiftlock과 같은 키보드의 다른 키는 적용하지 않으려고 합니다. 어떻게 해야 합니까?
(Shiftlock: 특정 키를 눌렀다가 놓으면 키보드에서 누르는 모든 키가 Shift 키를 누르는 것과 같습니다. 문자 키뿐만 아니라 , 및 화살표 키 출력도 Insert
변경 Home
되는데 이는 제가 원하는 것이 아닙니다.)
이는 Windows에서 Microsoft 키보드 레이아웃 관리자를 통해 가능합니다. 키 정의에는 키에 대한 4가지 상태 수준과 Capslock에 대한 또 다른 상태 수준이 모두 포함되어 있기 때문입니다. 하지만 xkb가 이를 허용하는지 여부는 알 수 없습니다.
(cap 1: 이 키는 cap을 활성화하고, cap 0: 비활성화합니다)
//SC VK_ Cap 0 1 2 6 7
//-- ---- ---- ---- ---- ---- ---- ----
02 1 1 1 007b -1 -1 -1 // DIGIT ONE, LEFT CURLY BRACKET, <none>, <none>, <none>
답변1
내가 올바르게 이해했다면 기본 동작을 변경하고 싶지 않고 CAPS LOCK상태가 켜졌을 때 숫자 행의 동작만 변경하고 싶을 것입니다. CAPS LOCK이 경우 다음과 같은 옵션이 있습니다.
a) 블록별 유형 변경
기본적으로 다음을 사용하십시오.
ALPHABETIC
(또는#_LEVEL_ALPHABETIC
더 많은 레벨을 원하는 경우) 항상 상태의 영향을 받아야 하는 키에 대해 CAPS LOCK.TWO_LEVEL
(또는THREE_LEVEL
등FOUR_LEVEL
)은 상태의 영향을 받지 않고 CAPS LOCK해당 키에만 영향을 받는 키를 나타냅니다 Shift.
...
// row 1 (E)
key.type[group1]="ALPHABETIC"; <<-----------
key <TLDE> { [ question, exclam, masculine, ordfeminine ] };
key <AE01> { [ braceleft, 1 ] };
key <AE02> { [ bracketleft, 2, periodcentered ] };
key <AE03> { [ parenleft, 3, EuroSign ] };
key <AE04> { [ less, 4 ] };
key <AE05> { [ slash, 5 ] };
...
// for further definitions where caps lock should not affect, use the following:
key.type[group1]="TWO_LEVEL";
...
...
b) 각 개별 키를 변경합니다.
다음은 각 키에 대해 개별적으로 다른 키 유형을 갖고 싶은 경우를 대비해 다른 맥락의 예입니다. 기본적으로 키 유형은 키 정의에 대해 "내부적으로" 설정되는 반면, 블록의 경우 외부적으로 정의되어 후속 키 정의에 적용됩니다.
partial xkb_symbols "swap_menu_rctrl_print" {
// for newer thinkpad keyboards with print screen in the wrong place
key <PRSC> {
type= "TWO_LEVEL",
symbols[Group1]= [ Control_R, Menu ]
};
key <RCTL> {
type= "ONE_LEVEL",
symbols[Group1]= [ Menu ]
};
};
일반적으로 독일 T3 레이아웃의 정의와 같이 보다 복잡한 레이아웃의 정의를 살펴볼 수 있습니다./usr/share/X11/xkb/de