Почему я не могу переключить свой макет с этими настройками:

setxkbmap -layout us,ru -option grp:alt_caps_toggle,compose:caps

Возможно ли, чтобы клавиша создания была назначена на CapsLock, а комбинация переключателей макета зависела от этой клавиши?

Кроме того, как отключить комбинацию Shift+CapsLock?

1
Pierre Dunn 29 Сен 2019 в 11:43

1 ответ

Лучший ответ

Давайте посмотрим, как эти вещи определены в xkeyboard-config.

alt_caps_toggle:

// Pressing Alt+Caps_Lock switches to the next group,
// pressing Caps_Lock toggles CapsLock.
partial modifier_keys
xkb_symbols "alt_caps_toggle" {
    key <CAPS> {
       type="PC_ALT_LEVEL2",
       symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
    };
};

alt_caps_toggle сопоставляет клавишу Caps Lock с Caps_Lock (уровень 1) и ISO_Next_Group (второй уровень, доступ к которому осуществляется нажатием Alt (type="PC_ALT_LEVEL2")).

caps:

partial modifier_keys
xkb_symbols "caps" {
    key <CAPS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};

caps отображает оба уровня на Multi_key (составить).

Эти два определения несовместимы; они сопоставляют клавишу Caps Lock с разными символами клавиш. Один из них просто заменит другой.

Возможно, вам придется реализовать эту функцию самостоятельно. Вы, вероятно, захотите что-то вроде этого:

type="PC_ALT_LEVEL2",
symbols[Group1] = [ Multi_key, ISO_Next_Group ]

То есть компоновка на первом уровне и групповой переключатель на втором уровне с Alt в качестве переключателя уровня 2.

0
Guildenstern 14 Ноя 2019 в 20:53