Настройка клавиатуры в X.Org 7.4 / X-Server 1.5

Дек 6th, 2009

В xorg-server-1.5.x, если не отключить при компиляции X-сервера, конфигурация устройств ввода
осуществляется не в xorg.conf, а через HAL. Это позволяет подключать различные клавиатуры и мышки “на лету”
и они будут работать без необходимости рестарта иксов. Но при этом, например для настройки раскладки,
возникает необходимость правки xml-конфигов HAL вместо простого и удобного файла xorg.conf.

Например, чтобы реализовать настройку в xorg.conf:

Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:ralt"

Необходимо создать файл /etc/hal/fdi/policy/10-keymap.fdi следующего содержания:

<?xmlversion="1.0" encoding="ISO-8859-1"?>
<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>
<merge key="input.xkb.layout" type="string">us,ru</merge>
<merge key="input.xkb.options" type="string">grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:ralt</merge>
<merge key="input.xkb.variant" type="string">,winkeys</merge>
</match>
</device>
</deviceinfo>

Отключается такое поведение добавлением в xorg секции:

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

Другой вариант, задействовать setxkbmap, поместив в ~/.xsessionrc строчку:

setxkbmap "us,ru" ",winkeys" "grp:caps_toggle"

Источник: http://kaktyc.wordpress.com/2008/12/01/on-hal-necessity-in-xorg/

Tags:
No comments yet.