xkb에서 Caps Lock 및 Shift + Caps Lock 모두 다시 매핑


13

Caps Lock이 Compose 키에 매핑되고 Shift + Caps Lock 기능이 전통적인 Caps Lock과 같이 xkb를 구성하려고합니다. 나는 다음과 같은 새로운 파일에 다음을 넣었다 /usr/share/X11/xkb/symbols/gdwatson.

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

그런 다음을 실행 setxkbmap -symbols 'pc+us+gdwatson(compose)'하여 성공적으로 완료했습니다. Caps Lock은 편지 쓰기로 작동하지만 Shift + Caps Lock은 Caps Lock 대신 편지 쓰기로 작동합니다. xkbcomp :0.0다음을 보여줍니다.

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

두 번째 레벨 심볼 매핑은 어떤 이유로 든 첫 번째 값을 복제하려고합니다. 누구든지 내가 잘못한 점이나 문제를 해결하는 방법을 알려주기에 충분한 xkb-fu를 가지고 있습니까?


1
Xmodmap 에서이 작업을 수행 할 수 있지만 xkb는이 작업을 수행 할 수 없습니다. 당신이 이것을 원한다면, @mirabilos의견 에 긍정적으로 응답하십시오 (응답 에 쓰는 것을 잊지 마십시오 ).이 의견을 삭제하고 답변으로 쓰십시오 (당신의 의견 응답도 삭제해야합니다).
mirabilos

1
첫 줄에 partial modifier keys실제로 있어야 partial modifier_keys합니까? 이 변경 사항이 없으면 setxkbmap -symbols 'pc+us+gdwatson(compose)'실제로 오류가 발생하지만 종료하면 원하는 출력을 얻습니다 xkbcomp :0.0. 그러나 Capslock을 동시에 누르면 Capslock 모드와 키 모드를 구성하는 바람직하지 않은 부작용이 발생합니다.
billyjmc

답변:


11

이것은 당신이 찾고있는 것을 성취하는 것 같습니다.

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

XKB를 다룰 때 다음 리소스는 매우 중요합니다 (향후 보증을 위해 이러한 페이지의 WayBack Machine 미러에 링크했습니다).


첫 번째 라인을 만들 경우에도 default partial modifier_keys, 당신은 명시 적으로 지정할 필요가 없습니다 setxkbmap -symbols 'pc+us+gdwatson(compose)', 당신은 간단하게 할 수있는setxkbmap -symbols 'pc+us+gdwatson'
billyjmc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.