LINUX.ORG.RU

Независимое включение раскладок клавиатуры

 ,


1

2

Использую три раскладки. По умолчанию они переключаются циклично, одна за другой. А мне бы хотелось чтобы на каждую раскладку была своя комбинация клавиш. Например, CapsLock для активации первой раскладки, Shift+CapsLock — для второй, Ctrl+CapsLock — для третьей.

Нужно именно переключение на заданную раскладку, а не возможность набирать символы другой раскладки при зажатом модификаторе.

Можно ли такое сделать и если да, то как?


проще всего «setxkbmap язык» на нужный хоткей, хотя это, конечно, некошерно

а так, в xkb на каждую клавишу можно повесить 4 уровня, на каждом есть две группы (с шифтом и без), вот там что-то поколдовать с ISO_*_Group надо, думаю

lazyklimm ★★★★★ ()
Ответ на: комментарий от sigurd

Там предлагают вводить недостающие символы при зажатом модификаторе, это не то, что мне нужно

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

помимо документации рекомендую посмотреть на вывод

xkbcomp $DISPLAY -

Будет проще понять типы клавиш и устройство всей кухни.

lazyklimm ★★★★★ ()
Ответ на: комментарий от sergs

Во, в файле compat/iso9995 есть такое

    interpret ISO_First_Group {
        action= LockGroup(group=1);
    };

    interpret ISO_Last_Group {
        action= LockGroup(group=2);
    };


я не проверял, но тебе нужно запилить переключалку на третью группу

    interpret ISO_Third_Group {
        action= LockGroup(group=3);
    };

и повесить его на модификатор третьего уровня нужной клавиши, примерно так:

partial modifier_keys 
xkb_symbols "3control" {
    virtual_modifiers AltGr;
    key <RCTL>  {
    // 
        symbols[Group1]= [ ISO_First_Group, ISO_First_Group, ISO_Last_Group, ISO_Last_Group, ISO_Third_Group, ISO_Third_Group ],
        virtualMods= AltGr
    };
};

тогда нажатие RCtrl будет переключать на первую, Shift+RCtrl на вторую, AltGr+RAlt на третью (при условии, если об этом будет сказано setxkbmap-у и xkbcomp)

Но это чисто теоретически :)

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

Спасибо, буду разбираться и пробовать.

Да, и ещё. В процессе поиска вариантов решения наткнулся на документ «Заметки на полях клавиатуры» и там же приведен пример независимого переключения 4х раскладок. Вдруг кому будет полезно.

Сам ещё детально не разобрался что там и как. Но ради интереса попробовал скопировать «в лоб». Завелось, раскладки перелючаются как нужно, но вылез побочный эффект. До этого мультимедийные клавиши типа XF86AudioMute и др. определялись и работали без каких-либо действий с моей стороны. После применения вышеуказанного рецепта все они отвалились, xev пишет «No Symbol».

sergs ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.