С новым дистрибутивом установились новые «кеды»- 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, причем его поведение мне и было нужно:
Аллилуйя!
В kxkbrc пишем аргумент grp:ctrl_shift_toggle_bidir, сохраняем и получаем то, что изначально хотелось.
Если у вас всего две раскладки клавиатуры ― рус/англ, то порядок их переключения для вас значения не имеет, а вот если раскладок три (англ/рус/укр) то уже начинаешь задумываться, то ли назначить комбинацию клавиш для каждой раскладки отдельно, то ли сделать различные направления переключения по кругу. За многие годы работы в 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, сохраняем и получаем то, что изначально хотелось.