FreeBSD Desktop: HAL
В качестве оконной системы я использую XFCE4. Xorg и приложения, которые при установке имели опцию включения поддержки HAL, собраны с его поддержкой.
Настройка устройств ввода
После первоначальной установки захотелось узнать, какие же "удобства" предоставляет HAL по сравнению с его отсутствием. И первое место, где я с ним столкнулся, был конфигурационный файл xorg.conf. Если у вас проблемы с опознованием мыши, тачпада или клавиатуры, значит вам необходимо настроить HAL. Либо сказать Xorg'у, чтобы он не обращал внимания на информацию, получаемую от HAL и использовал настройки из конфигурационного файла (для подробностей воспользуйтесь поиском по словам: xorg AllowEmptyInput).
Сначала я отключил настройку устройств ввода через HAL и сконфигурировал по-старинке. Но потом решил почитать документацию и настроить через HAL. Вот что у меня получилось. Выдержка из xorg.conf:
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 # InputDevice "Mouse0" "CorePointer" # InputDevice "Keyboard0" "CoreKeyboard" # Option "AllowEmptyInput" "false" Option "OffTime" "5" Option "StandbyTime" "3" EndSection #Section "InputDevice" # Identifier "Keyboard0" # Driver "kbd" # Option "AutoRepeat" "500 30" # Option "XkbRules" "xorg" # Option "XkbLayout" "us,ru" # Option "XkbVariant" "winkeys" # Option "XkbOptions" "grp:alt_shift_toggle" #EndSection # #Section "InputDevice" # Identifier "Mouse0" # Driver "mouse" # Option "Protocol" "auto" # Option "Device" "/dev/ums0" # Option "ZAxisMapping" "4 5 6 7" #EndSection
Тут я закомментировал настройки клавиатуры и мыши. А вот этот файлик я добавил в каталог /usr/local/etc/hal/fdi/policy
под именем 10-x11-input.fdi
:
<?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_options.AutoRepeat" type="string">500 30</merge> <merge key="input.x11_options.XkbRules" type="string">xorg</merge> <merge key="input.x11_options.XkbVariant" type="string">winkeys</merge> <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp,grp:alt_shift_toggle</merge> <merge key="input.x11_options.XkbLayout" type="string">us,ru</merge> </match> <match key="info.capabilities" contains="input.mouse"> <merge key="input.x11_options.ZSxisMapping" type="string">4 5 6 7</merge> </match> </device> </deviceinfo>
Как можно заметить, эти настройки соответствуют тем, что закомментированы в xorg.conf (кстати говоря, полный список настроек для той же клавиатуры можно посмотреть тут: /usr/local/share/X11/xkb/rules/base.lst
). Какой же смысл тогда переносить из одного файла в другой? Смысл в том, что HAL будет применять эти настройки ко всем подобным устройствам, подключаемым к системе. Т.е. если я подключу ещё одну мышь или клавиатуру, то настройки автоматически применятся к ним. "Подобность" же устройств определяется благодаря выделенным строчкам. Думаю, сейчас самое время запустить команду lshal
и посмотреть на её вывод, тогда будет более понятно. Команда отображает устройства поддерживаемые HAL'ом вместе с их свойствами.
Настройка PolicyKit
Через PolicyKit возможна настройка различных действий, для которых необходимы права суперпользователя. Например перезагрузка, монтирование сменных устройств. Я выполнил настройку через /usr/local/etc/PolicyKit/PolicyKit.conf:
<config version="0.1"> <match user="root"> <return result="yes"/> </match> <match action="org.freedesktop.hal.power-management.reboot"> <return result="yes"/> </match> <match action="org.freedesktop.hal.power-management.shutdown"> <return result="yes"/> </match> <match user="butcher"> <match action="org.freedesktop.hal.storage.mount-removable"> <return result="yes"/> </match> <match action="org.freedesktop.hal.storage.mount-fixed"> <return result="yes"/> </match> <match action="org.freedesktop.hal.storage.eject"> <return result="yes"/> </match> <match action="org.freedesktop.hal.storage.unmount-others"> <return result="yes"/> </match> </match> <define_admin_auth group="wheel"/> </config>
Здесь, для примера, монтирование и отключение устройств разрешено только для пользователя butcher. Теперь при включении флэшки в компьютер, либо после закрытия лотка с компакт диском в XFCE автоматически появляется соответсвующий ярлычок на рабочем столе и в менеджере файлов. При клике на этот значок происходит автоматическое монтирование. Отключение же производится через контекстное меню на тех же ярлыках.