Search
Write a publication
Pull to refresh

KDE 4.8, три раскладки и Ctrl+Shift в произвольном направлении

С новым дистрибутивом установились новые «кеды»- KDE 4.8, которые преподнесли свинью в неожиданном месте.
Если у вас всего две раскладки клавиатуры ― рус/англ, то порядок их переключения для вас значения не имеет, а вот если раскладок три (англ/рус/укр) то уже начинаешь задумываться, то ли назначить комбинацию клавиш для каждой раскладки отдельно, то ли сделать различные направления переключения по кругу. За многие годы работы в Windows я привык, что нажатия на левые Shift+Ctrl переключают раскладки в направлении англ/рус/укр а соответственно, на правые Shift+Ctrl в обратном направлении — англ/укр/рус.

Когда я себе ставил OpenSUSE 12.1, то совсем не вникал в этот процесс — что-то там клацнул пару раз и все заработало так, как мне надо. После того, как вчера обновил дистрибутив до 12.2 и соответственно KDE до 4.8 я вдруг обнаружил, что в какую сторону я бы не переключался, раскладки меняются только по англ/укр/рус. В Параметрах системы (Устройства ввода/Клавиатура/Дополнительно/Клавиша(и) для смены раскладки) на выбор кроме десятков различных вариантов предлагались мне три приемлемых варианта выбора: Ctrl+Shift, Левый Ctrl+Shift и Правый Ctrl+Shift. Выбор их во всех возможных комбинациях ни к чему не привел. Ну ладно, раз GUI не помог, будем работать напильником. Слегка погуглив, выясняю, что вся эта красивая оболочка просто записывает соответствующие значения в файл /home/max/.kde4/share/config/kxkbrc.
В нем нам интересен один из аргументов параметра Options, а именно:
grp:ctrl_shift_toggle
В данном случае это означает, что переключение раскладок происходит по комбинации клавиш Shift+Ctrl. В случае если активны и переключения через Левые и правые комбинации, через запятую добавляются соответствующие аргументы:
grp:rctrl_rshift_toggle,grp:lctrl_lshift_toggle

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

Еще немного гугля подсказали мне, что поведение этих комбинаций клавиш описывается в конфиге /usr/share/X11/xkb/symbols/group

И вот там я обнаружил четвертый вариант: ctrl_shift_toggle_bidir, причем его поведение мне и было нужно:
<code>partial modifier_keys 
xkb_symbols "ctrl_shift_toggle_bidir" {
    include "group(lctrl_lshift_toggle_rev)"
    include "group(rctrl_rshift_toggle)"
};</code>

Аллилуйя!
В kxkbrc пишем аргумент grp:ctrl_shift_toggle_bidir, сохраняем и получаем то, что изначально хотелось.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.