Переключение раскладки в Xfce: какое наHALство!
Извиняюсь за очередной вычурный заголовок, но речь действительно пойдет об использовании демона HAL (Hardware abstraction layer) для изменения раскладки клавиатуры. Раньше эта процедура прописывалась в файле /etc/X11/xorg.conf, но нынче этот способ считается устаревшим и рекомендуется потихоньку мигрировать в сторону более прогрессивных методов настройки «иксов».
Ага. Это я сейчас такой умный и правильный, когда решение уже найдено и внедрено. Но еще пару часов назад мозг был взорван очередной заморочкой Xfce. После обновления ОС Slackware с версии 13.0 до 13.1 перестала переключаться раскладка на русскую, хотя локаль выставлена правильно. Проблема не нова и раньше решалась установкой плагина xfce-kbd. Но он написан каким-то частным лицом, причем так давно, что даже не компилируется с самой свежей версией Xfce, включенной в состав Slackware 13.1. Пришлось усиленно гуглить.
В ходе поиска обнаружилась туева хуча статей о том, что нужно «всего-лишь подправить xorg.conf». Такое quick & dirty решение я отложил на крайний случай. Если уж ребята из команды Xfce отказались от этого способа конфигурирования, то, наверно, не зря. Должно же оно как-то настраиваться без рудиментарных способов. Однако страницы Google по запросу «xfce keyboard layout switch» были до бесконечности заполнены УГ по поводу xorg.conf.
Выручили (и не в первый раз) гентушники. Именно на их суровых страницах, изобилующих фразами типа
или
нашлось совершенно точное решение проблемы, причем подходящее не только для Gentoo, но и для любой внятной Linux-системы: нужно создать файл /etc/hal/fdi/policy/10-x11-input.fdi со следующим содержимым:
Правда, здесь переключение идет между тремя раскладками — английской, русской и украинской, но это только на пользу, возможно кто-то из наших читателей захочет заменить украинскую раскладку татарской или чувашской, благо эти языки давно уже поддерживаются в Linux.
Ага. Это я сейчас такой умный и правильный, когда решение уже найдено и внедрено. Но еще пару часов назад мозг был взорван очередной заморочкой Xfce. После обновления ОС Slackware с версии 13.0 до 13.1 перестала переключаться раскладка на русскую, хотя локаль выставлена правильно. Проблема не нова и раньше решалась установкой плагина xfce-kbd. Но он написан каким-то частным лицом, причем так давно, что даже не компилируется с самой свежей версией Xfce, включенной в состав Slackware 13.1. Пришлось усиленно гуглить.
В ходе поиска обнаружилась туева хуча статей о том, что нужно «всего-лишь подправить xorg.conf». Такое quick & dirty решение я отложил на крайний случай. Если уж ребята из команды Xfce отказались от этого способа конфигурирования, то, наверно, не зря. Должно же оно как-то настраиваться без рудиментарных способов. Однако страницы Google по запросу «xfce keyboard layout switch» были до бесконечности заполнены УГ по поводу xorg.conf.
Выручили (и не в первый раз) гентушники. Именно на их суровых страницах, изобилующих фразами типа
А FAQ кто читать будет? Дядя Ваня?
или
Какие однако бывшие бунтологи пошли или вантузятнеки?
Они даже читать не умеют =) А еще что то хотят.
нашлось совершенно точное решение проблемы, причем подходящее не только для Gentoo, но и для любой внятной Linux-системы: нужно создать файл /etc/hal/fdi/policy/10-x11-input.fdi со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.mouse">
<merge key="input.x11_driver" type="string">mouse</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
<!-- If we're using Linux, we use evdev by default (falling back to
mouse otherwise). -->
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
</match>
<match key="info.capabilities" contains="input.keys">
<merge key="input.x11_driver" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
<!-- If we're using Linux, we use evdev by default (falling back to
keyboard otherwise). -->
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
<merge key="input.xkb.layout" type="string">us,ru,ua</merge>
<merge key="input.xkb.variant" type="string">,winkeys,winkeys</merge>
<merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle,grp:lctrl_lshift_toggle</merge>
</match>
</device>
</deviceinfo>
Правда, здесь переключение идет между тремя раскладками — английской, русской и украинской, но это только на пользу, возможно кто-то из наших читателей захочет заменить украинскую раскладку татарской или чувашской, благо эти языки давно уже поддерживаются в Linux.
Комментарии (6)
RSS свернуть / развернутьУ меня были похожие проблемы — я запускал
Sergei_T
ksandras
и
Последнее, конечно, неправильно: надо не en, а us. Но я расстроился, стал гуглить дальше и… в итоге нашел кошерное решение .
yababay
Sergei_T
Markony
ksandras
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.