LINUX.ORG.RU

XKB. Сохранить модификатор на переключателе групп

 


0

1

Задача — повесить на Caps Lock переключатель групп и сохранить на нём же действующий модификатор Control.

Делаю так:

key <CAPS> {
    symbols[Group1] = [ Control_L ],
    actions[Group1] = [ LockGroup(group=3), SetMods(mods=Control) ],
    actions[Group3] = [ SetMods(mods=Control)]
};

В результате, если зажать Caps Lock, он переключает группу, но модификатор не устанавливает. Чтобы модификатор заработал, приходится отжимать капс и зажимать снова.

Как сделать, чтобы не приходилось отжимать капс?

Ответ на: комментарий от debugger

Да, слышал о нём, но хотелось найти решение без лишних сущностей.

Не пойму, почему.

По идее, я ведь могу назначить два модификатора, почему так не работает?
Вот я и назначил на свободный модификатор переключение группы (раскладки):

modifier_map Mod2 { ISO_Prev_Group };

и повесил на действия через SetMods:

key <CAPS> {
    symbols = [ NoSymbol ],
    actions [Group1] = [ SetMods(mods=Control+Mod2) ],
    actions [Group3] = [ SetMods(mods=Control) ]
    };

или таким образом, через RedirectKey:

key <CAPS> {
    symbols = [ NoSymbol ],
    actions [Group1] = [ RedirectKey(mods=Mod2, mods=Control)],
    actions [Group3] = [ RedirectKey(mods=Control) ]
    };

или таким образом, добавляя модификатор к значению клавиши:

key <CAPS> {
    symbols = [ ISO_Prev_Group, ISO_Prev_Group ],
    actions [Group1] = [ SetMods(mods=Control) ],
    actions [Group3] = [ SetMods(mods=Control) ]
    };

Но ничего не работает.
Это по определению невозможное действие или я делаю что-то неправильно?

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

…но хотелось найти решение без лишних сущностей.

Ин сач а кейс, велкам ту Xkb.

Но ничего не работает.

Упс.

Это по определению невозможное действие или я делаю что-то неправильно?

Хз. Я шесть лет назад натрахался с Xkb, желания возвращаться к его потрохам и скудной документации нет никагого. Тем более, что вайланд уже почти готов.

debugger ★★★ ()