Manjaro Other
   545

[SOLVED] Переключение между четырьмя раскладками клавиатуры без "беготни по кругу" (Xfce, Cinnamon). Это возможно?

Приветствую!

Подскажите пожалуйста как в Cinnamon, Xfce, другой графической оболочке или вообще без привязки к DE настроить схему переключения между 4 раскладками, о которой я напишу далее.

Нужна возможность задать хоткеи для включения сразу нужной раскладки (на следующем скрине это Alt+2, Alt+3, Alt+4).
Нужна возможность переключения между основной (английская) и одной из «запасных» (активной в текущий момент) раскладок.
Вот снимок, как это выглядит в «кедах».
Manjaro Other: Переключение между четырьмя раскладками клавиатуры без беготни по кругу (Xfce, Cinnamon). Это возможно?

Как это работает
По умолчанию включена английская раскладка. В нужный момент я сразу же включаю нужную мне раскладку с помощью комбинации клавиш этой раскладки (Alt+2, Alt+3, Alt+4). Для того, чтобы это сделать не нужно даже глядеть на индикатор раскладки в системном лотке.
В момент, когда нужно набирать латинские символы, я переключаюсь на основную (английскую) раскладку с помощью левой клавиши Win и этой же клавишей после окончания ввода латинских символов, я переключаюсь обратно на ранее выбранную раскладку.
Когда нужно печатать на другом языке, я сразу включаю нужную раскладку и тогда левая клавиша Win будет работать переключателем между этой раскладкой и основной (английской).
Таким образом мы избегаем «беготни по кругу». Если я только-что печатал НЕ на английском, то после нажатия левой клавиши Win я однозначно получаю английскую раскладку (не глядя при этом на индикатор клавиатуры). В настройках KDE это достигается благодаря параметру «Количество часто используемых раскладок=2», который вы видите в нижней части скриншота.

Возможность настроить такую схему переключения раскладок удерживает меня на KDE уже 6 лет. А с KDE у меня сейчас как-то не складывается (своими впечатлениями от его установки я поделился в предыдущем топике. Подозреваю, что проблема именно в KDE, а не в Manjaro (скоро я это проверю). А также проверю нет ли багов при использовании QtCurve, ведь еще пару лет тому назад я использовал именно настроенную QtCurve-тему оформления.

В общем, хочется пробовать и другие графические оболочки. А возможности настроить нужную мне схему не нашел ни в одной из перечисленных DE: Xfce, Cinnamon, Gnome. Но ведь KDE как-то это делает!
man xkeyboard-config
изучал. Максимум, что там возможно — настроить 2 комбинации клавиш для переключения на первую и последнюю раскладку. Или же я не понимаю как совместить параметры чтобы получить то, что мне нужно… Подскажите пожалуйста, кто знает, в какую сторону «копать» :)

4 комментария

avatar
посмотрите в этом направлении, как вариант средствами ДЕ назначить горячие клавиши на нужные раскладки, например(очень условно):
<code>alt+1: setxkbmap -model pc105 -layout us
alt+2: setxkbmap -model pc105 -layout ru
alt+3: setxkbmap -model pc105 -layout ua</code>
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
Спасибо за подсказку!

Сначала назначил хоткеи для отдельных раскладок, но в этом способе не было возможности переключаться на Англ. раскладку одной клавишей.
Позже пришел к тому, что нужно искать способы организации переключения между заранее созданными группами раскладок. В итоге пришел к способу включения, предложенному Вами, но с созданием не раскладок, а групп раскладок для каждого языка (каждая в паре с английским).

В итоге создал 3 скрипта и повесил на них в Cinnamon хоткеи.
layout_set_uk.sh (Alt + 2)
#!/bin/bash

setxkbmap -option
setxkbmap -layout ua,us -variant winkeys, -option grp:lwin_toggle,lv3:ralt_switch,compose:caps,terminate:ctrl_alt_bksp


layout_set_ru.sh (Alt + 3)
#!/bin/bash

setxkbmap -option
setxkbmap -layout ru,us -variant srp, -option grp:lwin_toggle,lv3:ralt_switch,compose:caps,terminate:ctrl_alt_bksp


layout_set_pl.sh (Alt + 4)
#!/bin/bash

setxkbmap -layout pl,us -variant "" -option grp:lwin_toggle,lv3:ralt_switch,compose:caps,terminate:ctrl_alt_bksp


Таким образом при каждом включении заново создается группа из двух раскладок, переключение между которыми происходит с помощью left_Win (lwin_toggle).
Клавиша Compose у меня на CapsLock-е (compose:caps), третий уровень на правом Alt (lv3:ralt_switch), и прерывание Xorg на Ctrl+Alt+Backspase (terminate:ctrl_alt_bksp)

Строку с командой "setxkbmap -option" использую для очистки накопления значений в options (при каждом новом «переключении» на новую группу раскладок, создается как-бы новый слой. О чем речь, можно понять понаблюдав вывод команды
setxkbmap -print -verbose 10


Немного подтормаживает такое «переключение» раскладок, но на первое время сойдет :)
Сначала было нашел xkb-switch, который есть в AUR. Пишут, что он быстрее. Но, кажись для моей задачи он не подходит.
Последний раз редактировалось
+1
avatar
вот набрел на новость, походу еще один из способов)
Оставлю это здесь, просто чтоб не потерялось)
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
я все переключение клавиатуры в крысе настраивал через графический редактор настроек

manjaro.ru/how-to/aciklicheskoe-pereklyuchenie-raskladki-klaviatury-v-xfce.html

а вот строки для текущего состояния с ацикличным переключением и спец символами

grp:shift_caps_switch,grp:menu_switch,lv3:ralt_switch,nbsp:level3n,misc:typo

думаю, по аналогии можно настроить любое изменение раскладок
Последний раз редактировалось
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/manjarolinux
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.