Для чего это может потребоваться?
1) Если вас не устраивают стандартные средства Window Manager’а
2) Если вы используете легкий десктоп, в котором стандартных средств переключения не существует.
Возможно, есть еще какие- то варианты.
Рассмотрим настройку на основе IceWM в Debian GNU/Linux.
Сначала устанавливаем xxkb, если он еще не установлен
apt-get install xxkb
Теперь надо настроить параметры переключения.
Это можно сделать при помощи программы setxkbmap
setxkbmap us,ru setxkbmap -model pc105 setxkbmap -option grp:lwin_toggle
Я использовал для переключения раскладки левую клавишу «Windows», но можно использовать также и другие модификаторы, например:
grp:shift_ctrl_toggle grp:alt_shift_toggle
Для внешнего представления необходимо еще кое-что настроить.
Есть два варианта настроек — настройки для пользователя и настройки для всей системы. Сначала применяются системные настройки, затем настройки для пользователя.
Системные настройки xxkb хранятся в файле /etc/X11/app-defaults/XXkb, для их изменения вам потребуются права root, пользовательские — в файле ~/.xxkbrc
Настройка xxkb предполагает изменение одного из этих файлов, файл глобальных настроек будет работать для всех пользователей, а индивидуальные настройки перегружают общесистемные, что позволяет, например, задать разным пользователям разные сочетания клавиш для переключения раскладки.
Для корректной работы xxkb необходимо еще кое-то изменить в каком-либо из них.
! Включаем основное окно xxkb XXkb.mainwindow.enable: yes ! Выключаем показ иконки xxkb в заголовках окон приложений XXkb.mainwindow.appicon: no ! Указываем, что значок переключателя должен показываться ! в трее XXkb.mainwindow.type: tray ! Устанавливаем тип трея XXkb.mainwindow.in_tray: KDE ! Устанавливаем размер значка, который будет показываться в трее ! (!) Обязательно надо указать часть "+0+0" XXkb.mainwindow.geometry: 15x15+0+0 ! Указываем значки для каждой раскладки из тех, ! что были указаны в качестве параметров команды setxkbmap ! (!) Наличие всех 4 параметров в файле настроек обязательно. XXkb.mainwindow.image.1: en15.xpm XXkb.mainwindow.image.2: ru15.xpm XXkb.mainwindow.image.3: XXkb.mainwindow.image.4: ! Отключаем кнопку, поскольку будем использовать переключение только с клавиатуры XXkb.button.enable: no
И после этого запускаем xxkb
xxkb &
Указание «&» необходимо для запуска xxkb в фоновом режиме.
Если при запуске вручную всё работает так, как и должно, можно устанавливать переключатель клавиатуры в автозагрузку.
Для этого я создал файл keyboard в папке ~/.icewm со следующим содержанием:
#!/bin/bash setxkbmap us,ru setxkbmap -model pc105 setxkbmap -option grp:lwin_toggle sleep 2 && xxkb&
И добавил в файл ~/.icewm/startup строчку
~/.icewm/keyboard &
Теперь выходим из системы, или перезагружаемся и при следующем входе в систему. Если всё сделано правильно, в трее icewm увидим значок, и при нажатии на клавишу переключения произойдет переключение раскладки и изменение значка в трее.
Да, кстати. По умолчанию xxkb запоминает раскладку для каждого окна, что при определенных условиях уменьшает количество нажатий клавиш переключения раскладки. И это очень даже удобно.
[wysija_form id=»2″]