LinuxForum.Fans
Тема

Переключение раскладок в LXDE

Автор: u_________________6 19 сообщений 6982 просмотров
#362072

Можно ли в LXDE назначить отдельные комбинации клавиш для трех раскладок языков - русской, английской и украинской?
В Яндексе ничего вразумительного, к сожалению,не нашел.
Спасибо.

#362082

Если устроит не на отдельные хоткеи, а на один повесить 3 раскладки:
http://wiki.mageialinux.ru/index.php?title=Настройка_раскладок_клавиатуры,_немного_отличных_от_русской

Если неохота возиться с правкой файла /etc/X11/xorg.conf, то в LXDE можно воспользоваться программой, которая называется fsKbSetting. Запускаем прогу: в терминале вводим команду fskbsetting, далее настраиваем раскладку, выбираем американскую, русскую и башкирскую раскладки, выбираем клавиши переключения раскладок, жмем ОК

В вашем случае, вместо башкирской будет украинская раскладка.

А теперь про fsKbSetting.
Еще раз обращаю внимание, она настраивает не отдельные хоткеи для 3 раскладок (допустим, alt+shift для en => ru и ctrl + shift для en => ukr), а 1 хоткей, просто позволяет использовать до 4-ех раскладок. Допустим, настроили 4 раскладки en, ru, ukr, pl и выставили alt + shift. При нажатии alt + shift раскладки будут менять в следующей последовательности: en => ru => ukr => pl.

UDP:
Под спойлер ушло все, что было в посте до того, как verg сообщил что fsKbSetting собран и для Mageia 3, есть в репозитории MRC (но похоже только для i586, так что методы ручной сборки, если что, под спойлером).

Показать

Для Mageia 2 программа собрана и есть в репозитории MRC, для Mageia 3, по-моему, не собиралась.
Но можно попробовать пойти окольным путем
[console]mkdir - p ~/fskbsetting
cd ~/fskbsetting
wget f[span]tp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repos[/span]itories/X11%3A/lxde/openSUSE_Factory/src/fskbsetting-0.3-3.34.src.rpm
rpm2cpio fskbsetting-0.3-3.34.src.rpm | cpio -dimv
tar xfvz fskbsetting-0.3.tar.gz
cd fskbsetting-0.3
./configure --prefix=/usr/local
make
su -c 'make install'[/console]

После можно смело запускать программу
[console]fskbsetting[/console]
Выставить там нужные 1 - 4 раскладки и клавиши для переключения.
Убедится что стоит галочка "Добавить в автозагрузку".
Ок.

Должно все работать.

Но по скольку у вас, скорей всего, devel-пакетов в системе нет, на ./configure и make будет сыпать ошибки, скидывайте сюда лог из терминала, а я подскажу какие пакеты доустановить.
#362085

xxblx, а fskbsetting имеет домашнюю страницу? А то гуглеж не дал результата и в АУРе его нет.

#362088
"xxblx" написал:
для Mageia 3, по-моему, не собиралась.

Как раз в MRC =)

text
http://packages.mageialinux.ru/mageia3/RPMS/i586/fskbsetting-0.3.2-5.mga3.mrc.i586.rpm
#362089

Наглядно о преимуществах настройки правкой конфигов перед настройкой графическими конфигураторами: заметки «на полях» клавиатуры.
Кто тут вопил «Консоль на мыло»? :D

#362090

verg, спасибо! *THUMBSUP* Еще там кое что увидел, интересное.

#362094

verg, спасибо. Вчера репу MRC отключал, забыл обратно включить. Сегодня поиск сделал, естественно, не нашло.
Пакет, кстати, только для i586 есть.

#362302
xxblx написал:
Если устроит не на отдельные хоткеи, а на один повесить 3 раскладки:

Вот как раз один хоткей на три раскладки я уже сам запилил, и достаточно просто :)
В файл /etc/xdg/lxsession/LXDE/autostart добавил команду @setxkbmap -option grp:switch,grp:lwin_toggle, us,ru,ua Одинаково хорошо работает и по alt+shift, и по win+shift
Когда есть две раскладки, их удобно переключать и одной комбинацией. Но уже три обходить по кругу бывает утомительно.

#362321

Хабалов Вячеслав, вам хочется, чтобы было 2 хоткея (т.е. alt + shift = us,ru ; win+shift = us,ua) или чтобы у каждой клавиши был свой хоткей, например, alt + z = us, alt + x = ru, alt + c = ua ?

#362392

xxblx, второй вариант из того, что Вы сказали.

#362400

Хабалов Вячеслав, ну тогда стоит попробовать сделать следующим образом

"Хабалов Вячеслав" написал:
файл /etc/xdg/lxsession/LXDE/autostart добавил команду @setxkbmap -option grp:switch,grp:lwin_toggle, us,ru,ua

Из автостарта удалить эту команду

Затем открыть файл ~/.config/openbox/lxde-rc.xml
Найти в нем секцию <keyboard></keyboard>
В конец секции, т.е. перед </keyboard> добавить

text
    <keybind key="W-A-Left">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, us</command>
      </action>
    </keybind>
    <keybind key="W-A-Up">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, ru</command>
      </action>
    </keybind>
    <keybind key="W-A-Right">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, ua</command>
      </action>
    </keybind>

После перезапуска сессии раскладки должны переключаться так:
Win + Alt + Стрелка влево = US
Win + Alt + Стрелка вверх = RU
Win + Alt + Стрелка вправо = UA

Почему именно Win + Alt + стрелки? Потому что выбирал комбинацию, которая была бы ничем не занята.
Если захотите изменить сочетания клавиш на свои - сначала посмотрите все содержимое <keyboard></keyboard>, чтобы выбранная вами комбинация была не занята.
И помните, что если будете назначать буквы, например Alt + J, J буква будет пока раскладка английская, после переключения на русский это уже О, соответственно, если назначить переключение языка на Alt + J, будет переключать с англ. на рус., но с рус. уже ни на что не переключит. По этому в комбинациях клавиш нужно или избегать букв, или назначать их по keycode'ам (посмотреть keycode можно в выводе команды xev), но я не уверен что это будет работать.

p.s. не дело это, конечно, через setxkbmap каждый раз менять раскладку, но другого в голову мне ничего не переходит.

#362453

xxblx, спасибо, все заработало. *THUMBSUP* Велосипед изобретать не стал, просто скопировал код в конец блока, оставив метку в комментарии. А в чем криминал, если не секрет? Пока заметил только, что кликом по иконке флажок не меняется, хотя и не должен, если я все правильно понял.

#362454
"Хабалов Вячеслав" написал:
А в чем криминал, если не секрет?

Ну, бытует мнение, что setxkbmap по уму должен на старте один раз дать раскладки и хоткей и все. А в варианте, который я предложил, setxkbmap используется при каждом переключении раскладки.
В принципе, работает и ладно. Но обычно, насколько я знаю, такое не практикуют.

"Хабалов Вячеслав" написал:
Пока заметил только, что кликом по иконке флажок не меняется, хотя и не должен, если я все правильно понял.

Правильно поняли, и теперь кликом по иконке флажок менять не будет.
Т.к. теперь при смене раскладки (при нажатии на одну из трех комбинаций) на самом-то деле не смена раскладки теперь происходит, а установка одной единственной раскладки в системе =) По этому, нажатие на флажок и не дает результата.
Иными словами, нажали win + alt + влево, в системе установилась одна единственная раскладка - US. Нажали win + alt + вверх, в системе установилась одна единственная раскладка RU и т.д. А раньше у вас устанавливалось несколько раскладок разом, которые можно было между собой прокручивать.
Как-то так. Надеюсь понятно объяснил.

#362455

xxblx, выходит в LXDE универсального способа, что бы работало и мышкой по флажку, и с клавиатуры, - не существует? Да, вот еще заметил побочный эффект. Когда установлена только русская раскладка, не работает копипаст с клавиатуры, хотя из менюшек все копируется и вставляется :)

#362458
"Хабалов Вячеслав" написал:
xxblx, выходит в LXDE универсального способа, что бы работало и мышкой по флажку, и с клавиатуры, - не существует?

Если только искать какие-то утилиты сторонние.
На каком-то форуме я читал, что sbxkb так умеет http://sourceforge.net/projects/staybox/files/sbxkb-0.7.6.tar.gz/download, но сам я им никогда не пользовался, так что наверняка не скажу.
Он, по-моему, для использования с OpenBox сделан, а LXDE в качестве оконного менеджера как раз OpenBox и использует. Так что, скорей всего, для LXDE он подойдет.

"Хабалов Вячеслав" написал:
Да, вот еще заметил побочный эффект. Когда установлена только русская раскладка, не работает копипаст с клавиатуры, хотя из менюшек все копируется и вставляется ab

Потому что комбинация подразумевают использование английских букв:
ctrl + x (экс)
ctrl + c (си) - копировать
ctrl + v (ви) - вставить
а не русских
ctrl + ч
ctrl + с
ctrl + м
Потому и не работает на русской раскладке :)

#362518
xxblx написал:

На каком-то форуме я читал, что sbxkb так умеет http://sourceforge.net/projects/staybox/files/sbxkb-0.7.6.tar.gz/download, но сам я им никогда не пользовался, так что наверняка не скажу.

Там по ссылке архив, если я правильно понял, для ручной сборки, что для rpm-сборки не совсем гут. Пробовал рпм-ку поискать, но в результатах бардак с архитектурами :) Подожду, может для Магии таки запилят :)

xxblx написал:

[quote="Хабалов Вячеслав"]Да, вот еще заметил побочный эффект. Когда установлена только русская раскладка, не работает копипаст с клавиатуры, хотя из менюшек все копируется и вставляется ab

Потому что комбинация подразумевают использование английских букв:
ctrl + x (экс)
ctrl + c (си) - копировать
ctrl + v (ви) - вставить
а не русских
ctrl + ч
ctrl + с
ctrl + м
Потому и не работает на русской раскладке :)[/quote]
Ну, это понятно. Просто на другом диске у меня именно эти комбинации работают с любой активной раскладкой. Хотя для активации строки меню в русскоязычных программах иногда приходится переключать язык :) В офисе, например :) А в GIMP-e всегда клавиши срабатывают, независимо от раскладки. А вот сейчас поставлю, попробую для сравнения :)

#363348
xxblx написал:
Хабалов Вячеслав, ну тогда стоит попробовать сделать следующим образом
[quote="Хабалов Вячеслав"] файл /etc/xdg/lxsession/LXDE/autostart добавил команду @setxkbmap -option grp:switch,grp:lwin_toggle, us,ru,ua

Из автостарта удалить эту команду

Затем открыть файл ~/.config/openbox/lxde-rc.xml
Найти в нем секцию <keyboard></keyboard>
В конец секции, т.е. перед </keyboard> добавить

text
    <keybind key="W-A-Left">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, us</command>
      </action>
    </keybind>
    <keybind key="W-A-Up">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, ru</command>
      </action>
    </keybind>
    <keybind key="W-A-Right">
      <action name="Execute">
        <command>setxkbmap -option grp:switch, ua</command>
      </action>
    </keybind>

[/quote]
Немножко порулил в таком режиме, и присовокупил к этому от себя еще

text

<keybind key="W-A-Down">
      <action name="Execute">
        <command>setxkbmap -option grp:switch,grp:lwin_toggle, us,ru,ua</command>
      </action>

Теперь, по желанию, можно ходить по кругу, и менять мышкой по флажку :), когда активна эта настройка.

Войдите или зарегистрируйтесь, чтобы ответить.