Переключение раскладки по Ctrl+Shift на eeePC

()

После выхода предыдущей статьи через форму обратной связи был задан вопрос: можно ли настроить переключение раскладки в упрощённом режиме eeePC по нажатию Ctrl+Shift. Эта заметка является ответом на этот вопрос.

Для начала немного подправим файл /etc/X11/xorg.conf, приведя секцию "InputDevice" для устройства "kbd" к виду:

Section "InputDevice"
        Identifier  "keyboard"
        Driver      "kbd"
        Option      "CoreKeyboard"
        Option      "XkbRules" "xorg"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us,ru"
        Option      "XkbVariant" ",winkeys"
        Option      "XkbOptions" "grp:ctrl_shift_toggle"
EndSection

Кроме того, в файле /etc/X11/Xsession.d/60keyboardmap-applet нужно закоментировать запуск "родного" для eeePC переключателя клавиатуры:

#/opt/xandros/bin/keyboardmap &

В принципе, уже всё работает, однако, наверняка нам захочется иметь ещё и индикатор раскладки в трее. Для этого нам понадобиться установить пакет xxkb:

apt-get install xxkb

Затем создаём скрипт для запуска xxkb: /usr/local/bin/startxxkb следующего содержания:

#!/bin/sh

/bin/sleep 5
/usr/bin/xxkb

Задержка нужна чтобы дать запуститься утилите icewmtray. Теперь добавляем новый срикпт в автозапуск. Для этого создаём файл /etc/X11/Xsession.d/99xxkb следующего содержания:

#!/bin/sh

/bin/sh /usr/local/bin/startxxkb &

И делаем его исполняемым:

chmod +x /etc/X11/Xsession.d/99xxkb

Теперь xxkb будет запускаться автоматически при запуске системы. Осталось только настроить индикатор, чтобы он висел в трее. Для этого копируем стандартный файл конфигурации к себе в домашний каталог:

cp /etc/X11/app-defaults/XXkb ~/.xxkbrc

Открываем его в редакторе. Первым делом уменьшим размер главного окна с 48x48 точек до 15x15 точек:

! XXkb.mainwindow.geometry: 48x48
XXkb.mainwindow.geometry: 15x15

! XXkb.mainwindow.xpm.1: en48.xpm
XXkb.mainwindow.xpm.1: en15.xpm

! XXkb.mainwindow.xpm.2: ru48.xpm
XXkb.mainwindow.xpm.2: ru15.xpm

! XXkb.mainwindow.xpm.3: su48.xpm
XXkb.mainwindow.xpm.3: su15.xpm

Стоит отметить, что в xxkbrc комментарии начинаются с восклицательного знака, а не с символа решётки, как это бывает.

Далее уберём главное окно в системный трей. Для этого нужно раскомментировать параметр XXkb.mainwindow.in_tray и присвоить ему значение KDE2:

XXkb.mainwindow.in_tray: KDE2

И, наконец, убираем значок языка с заголовков окон:

! XXkb.button.enable: yes
XXkb.button.enable: no

Если же хочется его оставить, то нужно немного подвинуть значок, чтобы он не налезал на кнопки управления окном:

! XXkb.button.geometry: 15x15-60+7
XXkb.button.geometry: 15x15-80+9

В этом случае так же полезно убрать индикатор с приложения AsusLauncher (которое отвечает за иконки на рабочем столе), поскольку на нём он смотрится не очень эстетично. Для этого в конец файла нужно добавить строчку:

XXkb.app_list.wm_name.ignore: AsusLauncher

Приятной работы!

Ключевые слова: eeePC, Ctrl+Shift, xxkb, xandros.

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

eugene 2008-06-28 17:01:31 (#)

Всем добрый день. Статья мне, чайнику в линуксе, сильно помогла, но хотелось бы предложить маленькое дополнение, без которого у меня при определённых обстоятельствах возникала иконка раскладки в нижней правой части трея, частично перекрывающая иконку SOS, что и нефункционально, и неэстетично.
Итак. Следом за строкой

XXkb.app_list.wm_name.ignore: AsusLauncher

в ~/.xxkbrc добавляем строчку

XXkb.app_list.wm_name.ignore: icewmtray

после чего зловредная иконка пропадает навсегда :-)

Кстати. Штатные иконки xxkb при помещении в трей выглядят неважно - квадратные и сдвинуты вверх. Прямо руки чешутся перерисовать...

MooSE 2008-06-28 17:51:16 (#)

про иконку в трее: фишка в том что панелька высотой 20 пикселей а иконка 15. если в конфиге указать высоту 20 пикселей то иконка не растягивается.

значит нужно нарисовать иконку высотой 20 пикселей и настроить в конфиге высоту 20.

кстати иконки не обязательно должны быть квадратные. так что можно реально очень красивый индикатор сделать. и даже стилизовать иконки под выбранную цветовую гамму:)

eugene 2008-06-28 17:57:17 (#)

Бог с ней, пусть она будет 15 пикселей, но вот как сделать её не привязанной к верхнему краю? Можно сделать высоту изображения 14 пикселей, и по три пикселя сверху и снизу оставить прозрачными (не знаю только, поддерживает ли формат xpm прозрачность?)...

MooSE 2008-06-28 18:15:12 (#)

xpm вроде как нет... да и опции для сдвига иконки я тоже в конфиге не нашёл..

так что переделать иконки это пожалуй самый простой вариант тут. разве что исходники xxkb ковырять ещё:)

2008-06-28 23:11:11 (#)

MooSE, скажи честно, машина стоит того? или это просто игрушка?

MooSE 2008-06-29 00:15:39 (#)

ladm, смотря что ты хочешь с ней делать. Мне он понравилось.

eugene 2008-06-29 10:21:14 (#)

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

magerlab 2008-06-29 12:08:42 (#)

я уже столько книжек прочитал!
самый большой недостаток - батарейка не очень большой емкости, но часа на 2,5-3 хватает

magerlab 2008-06-29 12:10:34 (#)

кстати, переключение раскладок можно настроить на одну клавишу, например на alt, чтобы удобнее было

MooSE 2008-06-29 14:31:05 (#)

> кстати, переключение раскладок можно настроить на одну клавишу, например на alt, чтобы удобнее было

Ну в любом случае делается ковырянием xorg.conf :)

eugene 2008-06-29 14:40:41 (#)

А вот кому-нибудь удалось поставить kxneur на штатный xandros? это переключалка/индикатор раскладки клавиатуры, работающий по типу виндозного keyboard ninja или punto switcher, http://www.xneur.ru.

MooSE 2008-06-29 14:50:12 (#)

> А вот кому-нибудь удалось поставить kxneur на штатный xandros?

Нет. Оно даже на убунте нормально не работает.

Используй xneur+xgneur. Хотя достаточно xneur+xxkb:) gxneur/kxneur всего-лишь фронт-энды к xneur.:)

eugene 2008-06-29 14:56:10 (#)

Да я понимаю, что фронтэнды. Просто у них иконки нормальные для трея :-) Кстати, я тебе присылал иконки для xxkb - посмотрел? По-моему, более удачные, чем штатные.

MooSE 2008-06-29 15:21:25 (#)

посмотрел:)


симпатично:) а откуда ты их взял?

eugene 2008-06-29 16:23:03 (#)

Из gxneur выдрал и чуток подредактировал.

selivan 2008-07-11 21:57:08 (#)

Может сразу в /etc/X11/Xsession.d/99xxkb написать

/bin/sleep 5
/usr/bin/xxkbrc

Зачем писать отдельный startxxkb и вызывать из 99xxkb? Сложнее и лишний sh запускается

INFOMAN 2008-08-03 13:46:33 (#)

А не проще ли поменять в ~/.icewm/keys строку:

key "Alt+Space" killall -s 10 keyboardmap

на:

key "<что-то-там>" killall -s 10 keyboardmap

?

MooSE 2008-08-06 11:29:10 (#)

INFOMAN, нет не проще. Ctrl+Shift не сработает. Ибо обе клавиши это клавиши-модификаторы.

waks 2009-02-03 12:32:25 (#)

selivan значит правильно добавил? Не надо писать отдельный startxxkb?

waks 2009-02-03 12:40:18 (#)

Кстати, все сделал как написано... раскладка переключается, индикатор не работает, пишу в консоле xxkb, индикатор появляется....

MooSE 2009-02-03 19:29:23 (#)

А файлик ~/.xxkbrc у тебя в домашней директории какого пользователя находится? Точно user?

waks 2009-02-04 15:28:40 (#)

.xxkbrc находится в /home/user

waks 2009-02-04 15:40:21 (#)

Кстати, есть еще такой способ:

1. Правим в /etc/X11/xorg.conf секцию Section "Inputdevice" Identifier "keyboard" - должен выглядеть так:

Section "InputDevice"
Identifier "keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

2. Устанавливаем программу KKBSwitch (индикатор раскладки + позволяет использовать переключение раскладки в каждом окне отдельно)

$>sudo spt-get install kkbswitch

3. Редактируем файл /etc/X11/Xsession.d/60keyboardmap-applet

#!/bin/sh

#/opt/xandros/bin/keyboardmap &

kkbswitch

4. Жмем ctrl+alt+backspace и после перезагрузки Xов радуемся жизни smile все переключается через назначенные клавиши и отображается на панели. Щелкнув правой кнопкой на флажке страны в трее можно настроить переключение глобально или в каждом окне. Ну и флажки остается только выбрать.

Что скажете?

MooSE 2009-02-04 20:15:25 (#)

нормально:)

waks 2009-02-04 23:37:26 (#)

Затем создаём скрипт для запуска xxkb: /usr/local/bin/startxxkb следующего содержания:

#!/bin/sh

/bin/sleep 5
/usr/bin/xxkbrc

Здесь точно должно быть xxkbrc, а не xxkb?

Не могу понять, почему у меня все таки не отображается индикатор раскладки?

MooSE 2009-02-05 10:04:51 (#)

> Здесь точно должно быть xxkbrc, а не xxkb?

Гы. Ты нашёл ашыпку. Сейчас подправлю статью:)

Пасип.
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE

IT аутсорсинг. Обслуживание рабочих компьютеров и серверов

http://комфорт-окно.рф скидки на пластиовые окна