Próbuję skonfigurować xkb tak, aby Caps Lock był mapowany na klawisz Compose, a Shift + Caps Lock działa jak tradycyjny Caps Lock. W nowym pliku o nazwie /usr/share/X11/xkb/symbols/gdwatson
:
partial modifier keys
xkb_symbols "compose" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Multi_key, Caps_Lock ]
};
};
Potem pobiegłem setxkbmap -symbols 'pc+us+gdwatson(compose)'
, co zakończyło się pomyślnie. Caps Lock działa jak Compose, ale Shift + Caps Lock działa jak Compose zamiast Caps Lock. xkbcomp :0.0
ujawnia następujące:
key <CAPS> {
type= "TWO_LEVEL",
symbols[Group1]= [ Multi_key, Multi_key ]
};
Odwzorowanie symboli na drugim poziomie jest z jakiegoś powodu powielaniem pierwszego, zamiast oddzielnej wartości, którą próbowałem mu nadać. Czy ktoś ma dość siły xkb-fu, aby powiedzieć mi, co zrobiłem źle lub jak to naprawić?
keyboard-layout
xkb
Grant Watson
źródło
źródło
@mirabilos
w odpowiedzi, więc to zauważam) w komentarzu, a następnie usunę ten komentarz i napiszę go jako odpowiedź (powinieneś również usunąć swoją odpowiedź na komentarz).partial modifier keys
byćpartial modifier_keys
? Bez tej zmianysetxkbmap -symbols 'pc+us+gdwatson(compose)'
faktycznie wychodzi z błędem, ale wraz ze zmianą otrzymuję pożądany wynikxkbcomp :0.0
. Jednak dostaję niepożądany efekt uboczny, że jednoczesne naciśnięcie Capslocka wprowadza mnie w tryb Capslock i komponuje tryb klawiszy.Odpowiedzi:
To wydaje się osiągać to, czego szukasz.
Następujące zasoby są nieocenione, gdy mamy do czynienia z XKB (dowiązałem do mirrorów tych stron WayBack Machine w celu zabezpieczenia na przyszłość):
źródło
default partial modifier_keys
setxkbmap -symbols 'pc+us+gdwatson(compose)'
setxkbmap -symbols 'pc+us+gdwatson'