В началоHOWTO hal и устройства ввода → Клавиатура
Gentoo-doc HOME Пред.: Обновляем установку xorgВ началоУровень выше: HOWTO hal и устройства вводаСлед.: Перезапускаем X-ы

4. Клавиатура

Правила(rules) пользователя можно разместить в каталогах:

/usr/share/hal/fdi/policy/20thirdparty/

или аналогичном /etc/hal/fdi/policy

получить список устройств "узнанных" hal можно командой lshal у меня системе(ноутбук с мультимедийными клавишами) оказалось несколько устройств которые совместимы с понятием "клавиатура", но основная была описана так:

 udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input'
 info.addons.singleton = {'hald-addon-input'} (string list)
 info.capabilities = {'input', 'input.keyboard', 'input.keypad', 'input.keys', 'button'} (string list)
 info.category = 'input'  (string)
 info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string)
 info.product = 'AT Translated Set 2 keyboard'  (string)
 info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input'  (string)
 input.device = '/dev/input/event2'  (string)
 input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port'  (string)
 input.physical_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port'  (string)
 input.product = 'AT Translated Set 2 keyboard'  (string)
 input.x11_driver = 'evdev'  (string)
 input.xkb.layout = 'us'  (string)
 input.xkb.model = 'evdev'  (string)
 input.xkb.rules = 'base'  (string)
 input.xkb.variant =   (string)
 linux.device_file = '/dev/input/event2'  (string)
 linux.hotplug_type = 2  (0x2)  (int)
 linux.subsystem = 'input'  (string)
 linux.sysfs_path = '/sys/devices/platform/i8042/serio0/input/input2/event2'  (string)

Заметно что

 input.xkb.layout = 'us'
 input.xkb.rules = 'base'
 input.xkb.variant = 

нас не устраивает

Создаём новый файл

# nano /usr/share/hal/fdi/policy/20thirdparty/10russian-layout.fdi

со следующим содержимым:

Листинг 1. Файл: /usr/share/hal/fdi/policy/20thirdparty/10russian-layout.fdi

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- -*- SGML -*- -->
<match key="input.product" contains="AT Translated Set 2 keyboard">
  <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:alt_shift_toggle,grp_led:scroll</merge>
</match>


если у вас одно устройство ввода типа "клавиатура",то можно сточку

<match key="input.product" contains="AT Translated Set 2 keyboard">

заменить на

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

Так мы получим более универсальное правило. Можно заметить что названия опций перекликается с аналогами xorg.conf. Так и есть, в принципе здесь можно записать все те параметры которые вы использовали в xorg.conf только в приложении к XML.

Важно

Если у вас остались проблемы с расположением клавиш, то возможно так и следует сделать?

например:

Option "XkbRules" "xorg"

тоже самое что

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

Если по каким-то причинам драйвер evdev(он используется по умолчанию) вас не устраивает, то его тоже можно изменить:

Driver "kbd" 

=

    <merge key="input.x11_driver" type="string">kbd</merge>

Сохраняем файл.

# /etc/init.d/hald restart

Проверяем системный лог и убеждаемся, что правило успешно добавленно.

# lshal

должно вывести следующие строчки:

...
 input.x11_driver = 'evdev'  (string)
 input.xkb.layout = 'us,ru'  (string)
 input.xkb.model = 'evdev'  (string)
 input.xkb.options = 'grp:alt_shift_toggle,grp_led:scroll'  (string)
 input.xkb.rules = 'base'  (string)
 input.xkb.variant = ',winkeys'  (string)
...

Если так и есть, то дело сделано. Если нет--внимательно перечитываем до просветления.

Пред.: Обновляем установку xorgВ началоУровень выше: HOWTO hal и устройства вводаСлед.: Перезапускаем X-ы
В началоHOWTO hal и устройства ввода → Клавиатура