LINUX.ORG.RU

XKB. Как разблокировать шифт-уровень?

 


0

1

Ситуация.
Пробел блокирует «шифт-уровень», тем самым позволяя выделять текст при движении курсора.

Клавиша «c» копирует выделенный текст.

Выглядит это следующим образом:

key <SPCE> {
    symbols [Group1] = [ space, space ],
    actions [Group3] = [ LockMods(mods=Shift) ]};

key <AB03> {
    symbols = [ NoSymbol ],
    actions = [ RedirectKey(key=<INS>, mods=Control, clearmods=Shift) ]};

Всё работает, но после того как текст скопирован, у меня нет необходимости продолжать выделеление текста, а шифт продолжает оставаться зажатым. Приходится нажимать повторно «пробел», чтобы выйти из «режима выделения».

Как сделать, чтобы при нажатии клавиши «c» снимался флаг «Shift_Lock»?

Почему не срабатывает директива «clearmods=Shift»?

Это действие в XKB вообще возможно?

Предположу, что RedirectKey снимает модификатор на время перенаправления, а потом возвращает обратно. Можно попробовать в определение клавиши INS добавить LockMods(mods=Shift).

Жаль, что нормальной документации на xkb нет.

rassol ()
Ответ на: комментарий от rassol

«overlay» подразумевает использование дополнительной клавиши, что не вписывается в мою концепцию. Используя дополнительную клавишу можно было бы переключать, например радиогруппы, или ещё что-нибудь хитрое придумать, но смысл теряется.

Dreamdrawer ()