Я пытаюсь настроить 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, чтобы сказать мне, что я сделал неправильно или как это исправить?
partial modifier keysбыть на самом деле partial modifier_keys? Без этого изменения setxkbmap -symbols 'pc+us+gdwatson(compose)'фактически завершается с ошибкой, но с изменением я получаю желаемый результат xkbcomp :0.0. Однако я получаю нежелательный побочный эффект, что одновременное нажатие на Capslock переводит меня в режим Capslock и режим составления клавиш.
@mirabilosв своем ответе, чтобы я его заметил) в комментарии, тогда я удалю этот комментарий и напишу его как ответ (затем вы также должны удалить свой комментарий).