20 января 2011 г.

Настройка переключения раскладок в Ubuntu 10.04/10.10

Предисловие: В Ubuntu по умолчанию в качестве окружения рабочего стола используется Gnome (или KDE/Xfce, если вы используете KUbuntu/XUbuntu соответственно). В этих окружениях есть соответствующие апплеты, отвечающие за переключение раскладок и отображение где-нибудь на панели текущей раскладки. А вот если вы, как и я, устанавливаете Ubuntu с диска Alternate как "голую" консоль, а затем накатывате на нее какой-нибудь оконный менеджер (IceWM, OpenBox, FluxBox или какой-то еще из множества WM), то перед вами обязательно встанет проблема настройки переключения раскладок и отображения индикатора текущей раскладки. Этому и посвящен этот пост.


Настройка переключения раскладок:

В ОС Debian Linux для настройки параметров переключения раскладок необходимо править файл /etc/X11/xorg.conf. Что там надо написать написано к примеру здесь и здесь.
В Ubuntu по-умолчанию xorg.conf нет. Его можно создать, но параметры клавиатуры он почему-то у меня оттуда не берет. Ну и ладно, обойдемся и без него. Благо в Ubuntu он как правило и не нужен.

Для установки параметров клавиатуры в Ubuntu 10.04 используется улилита setxkbmap из пакета x11-xkb-utils.

Чтобы установить параметры клавиатуры прописываем в файл автозагрузки следующую команду:

setxkbmap -rules "evdev" -layout "us,ru" -variant "," -option "grp:caps_toggle,terminate:ctrl_alt_bksp"


Данная команда устанавливает английскую-американскую (us) и русскую (ru) раскладки. Переключение раскладок осуществляется клавишей CapsLock (сам CapsLock теперь активируется комбинацией Shift+CapsLock). Световой индикатор CapsLock'а теперь указывает на использование второй раскладки (в нашем случае --- это русская раскладка). Комбинация Ctrl+Alt+Backspace используется для закрытия X-server'a (по умолчанию в Ubuntu 10 эта возможность отключена).

Утилита setxkbmap должна запускаться от имени суперпользователя. Есть два решения:

  1. Прописываем в файл sudoers права на выполнение для этой программы /usr/bin/setxkbmap без пароля и запускаем ее через sudo

  2. Устанавливаем для утилиты бит SUID и прописываем всех пользователей в группу admin (пользователь, созданный при установке системы, уже находится в этой группе)
    # chmod u+s /usr/bin/setxkbmap
    # usermod -a -G admin username


Теперь у нас работает глобальное (для всей системы) переключение раскладок и даже есть индикатор активной раскладки в виде светодиода CapsLock. Но если вы используете более двух раскладок (например английскую, русскую и украинскую) или вам просто неудобно использовать световой индикатор, и вы хотите привычный индикатор на панели задач или в трее, то вам нужен индикатор текущей раскладки. Я в качестве индикатора раскладок использую xxkb, поэтому буду рассказывать именно про него.


Настройка индикатора/переключателя раскладок xxkb:

Вначале, как водится, надо этот xxkb установить:
# apt-get install xxkb


Теперь настроим его так, чтобы индикатор отображался в только в трее. Я при настройке использовал вот этот материал: ссылка. Но там, как оказалось, верно не все.

Чтобы все работало, как описано выше, приведите файл /etc/X11/app-defaults/XXkb к следующему виду (строки, не приведенные в листинге, остаются без изменения):
XXkb.image.path: /usr/share/xxkb

XXkb.mainwindow.enable: yes
XXkb.mainwindow.geometry: 15x15+985-31
XXkb.mainwindow.image.1: en15.xpm
XXkb.mainwindow.image.2: ru15.xpm
XXkb.mainwindow.image.3: su15.xpm
XXkb.mainwindow.image.4:
XXkb.mainwindow.label.font: -misc-*-r-*-20-*

XXkb.mainwindow.type: tray
! possible values - normal, top, tray, wmaker

XXkb.button.enable: no


Теперь прописывайте команду запуска xxkb в автозапуск вашего WM и наслаждайтесь работой.

Все.

Комментариев нет:

Отправить комментарий