Показаны сообщения с ярлыком hal. Показать все сообщения
Показаны сообщения с ярлыком hal. Показать все сообщения

2009-05-20

Клавиатура определяется HAL

Решил-таки перейти на определение раскладки клавиатуры HAL'ом. Задолбался каждый раз заново настраивать xorg.conf при новой установке. Да и вообще запарило возиться с xorg'гом, ведь прогресс не стоит на месте.
Почитав у настроивших до меня, извлек для себя некоторую весьма полезную информацию.
В /usr/share/hal/fdi/policy/10osvendor находятся шаблоны XML-конфигов для HAL, нам нужен 10-keymap.fdi. В файле /usr/share/X11/xkb/rules/base.lst находятся опции настройки раскладки клавиатуры.
Собственно, начнем с xorg.conf. Удаляем в секции:

Section "ServerLayout"
Identifier "Xorg Configured"
Screen 0 "aticonfig-Screen[0]-0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "USB Mouse" "CorePointer"
EndSection


упоминание об устройстве ввода Keyboard0. Удаляем, соответственно, саму секцию:

Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbVariant" "winkeys"
Option "XkbOptions" "grp:toggle,grp_led:scroll"
EndSection

выписав, естественно, свои настройки :) Разрешаем автодобавление новых устройств:

Section "ServerFlags"
Option "AutoAddDevices" "true"
EndSection

Или можно вообще удалить эту секцию, так как она была создана именно для блокирования HAL. Далее копируем указанный выше 10-keymap.fdi в каталог /etc/hal/fdi/policy/. Приводим этот файл к виду:


<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>

<match key="info.capabilities" contains="input.keyboard">

<merge key="input.xkb.rules" type="string">base</merge>

<!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -->
<merge key="input.xkb.model" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">

<merge key="input.xkb.model" type="string">evdev</merge>
</match>

<merge key="input.xkb.layout" type="string">us,ru</merge>
<merge key="input.xkb.variant" type="string">,winkeys</merge>
<merge key="input.xkb.options" type="string">grp:toggle,grp_led:scroll,caps:internal</merge>

</match>
</device>
</deviceinfo>


Чтобы настройки вступили в силу, надо перезапустить HAL и рестартануть X-сервер. После такой настройки мы хотя бы немного разгрузим xorg.conf от "лишней" информации. Огорчает только, что до сих пор не пофиксена "фича" с отсутствием реакции на двойной клик тачпада...

2008-12-18

Обновление xorg и evdev. Отказ от hotplug.

Еще вчера отключил hotplug в xorg.conf:

Section "ServerFlags"
Option "AutoAddDevices" "False"
EndSection

т.к. заметил, что touchpad ноута не воспринимает двойной щелчок по поверхности, имитирующий клик левой клавишей. Решил переждать, пока пофиксят. Сегодня, обновив сабжевые пакеты, не нашел ничего нового в поведении, и решил оставить ручное конфигурирование xorg.conf, пока не доведут до ума эти функции. Обнаружил также, что прокрутка страниц в браузере клавишами PgUp/PgDn при включенном hotplug не действует.
Правда, я не создавал правила hal, т.к. все в принципе работает, но думаю, и правила эти не помогут, да и нафига их писать, когда проще и понятнее отредактировать xorg.conf?