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 от "лишней" информации. Огорчает только, что до сих пор не пофиксена "фича" с отсутствием реакции на двойной клик тачпада...

2009-05-19

Проблема с просмотром сети в Nautilus решена

С недавних пор, сидя на Nautilus 2.26.2, заметил, что перестала просматриваться сеть, выскакивает ошибка "Не удалось получить список доступных на сервере ресурсов". При этом, если напрямую указать хост:

smb://server


то все отрабатывает без проблем. Порывшись в интернете после обнаружения ошибки, нашел жалобы только пользователей Ubuntu, но там грешили на smbclient.
Сегодня оказалось, что на него грешили напрасно. В репах появилось обновление Nautilus 2.26.3, которое исправляет ошибку, при этом smbclient не обновлен. По-моему, он вообще не причем, и просмотр сети осуществляется самим Nautilus'ом без сторонних утилит.
В какой-то момент мне показалось, что обновление на домашней системе не дало результата, т.к. получал ту же ошибку. Но все оказалось проще. У меня 2 компа сидят через маршрутизатор. Так вот на том, с которого сижу, samba не настроена и, соответственно, шары нет. а другой в это время был выключен. Я включил его, и после этого nautilus показал сеть с рабочей группой workgroup.