Я пытаюсь настроить xkb таким образом, чтобы Caps Lock отображался на клавишу Compose, а Shift + Caps Lock функционировал как традиционный Caps Lock. Я поместил следующее в новый файл с именем /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 работает как Compose, но Shift + Caps Lock работает как Compose вместо Caps Lock. xkbcomp :0.0
раскрывает следующее:
key <CAPS> {
type= "TWO_LEVEL",
symbols[Group1]= [ Multi_key, Multi_key ]
};
Отображение символов второго уровня по какой-то причине дублирует первый, а не отдельное значение, которое я пытался дать. У кого-нибудь есть достаточно сильный xkb-fu, чтобы сказать мне, что я сделал неправильно или как это исправить?
keyboard-layout
xkb
Грант Уотсон
источник
источник
@mirabilos
в своем ответе, чтобы я его заметил) в комментарии, тогда я удалю этот комментарий и напишу его как ответ (затем вы также должны удалить свой комментарий).partial modifier keys
быть на самом делеpartial modifier_keys
? Без этого измененияsetxkbmap -symbols 'pc+us+gdwatson(compose)'
фактически завершается с ошибкой, но с изменением я получаю желаемый результатxkbcomp :0.0
. Однако я получаю нежелательный побочный эффект, что одновременное нажатие на Capslock переводит меня в режим Capslock и режим составления клавиш.Ответы:
Это похоже на то, что вы ищете.
Следующие ресурсы неоценимы при работе с XKB (я связался с зеркалами WayBack Machine на этих страницах для будущего):
источник
default partial modifier_keys
, то вам не нужно явно указыватьsetxkbmap -symbols 'pc+us+gdwatson(compose)'
, вы можете просто сделатьsetxkbmap -symbols 'pc+us+gdwatson'