# Xorg 1.6 + hal + evdev, strzałka w górę i tylda

## sasq

Siema.

Zaktualizowałem sobie X.org do wersji 1.6 z włączoną flagą hal. Wszystko wydaje się działać dobrze, z wyjątkiem klawisza "strzałka w górę", który zamiast przenosić kursor lub pokazywać historię poleceń w konsoli, wstawia mi tyldę "~" :/

Zaznaczam, że czytałem tutaj wątki na ten temat. Skonfigurowałem wszystko według zaleceń. HAL działa. W xorg.conf wywaliłem wszystkie wpisy związane z klawiaturą i myszą. W configach HAL'a mam keymap ustawiony na "pl". Z logów X.org wynika, że ustawia go poprawnie:

```
(II) config/hal: Adding input device AT Translated Set 2 keyboard

(**) AT Translated Set 2 keyboard: always reports core events

(**) AT Translated Set 2 keyboard: Device: "/dev/input/event0"

(II) AT Translated Set 2 keyboard: Found keys

(II) AT Translated Set 2 keyboard: Configuring as keyboard

(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)

(**) Option "xkb_rules" "evdev"

(**) Option "xkb_model" "evdev"

(**) Option "xkb_layout" "pl"
```

Co ciekawe, gdy wywołuję ręcznie polecenie setxkbmap pl to nagle wszystko zaczyna działać tak jak powinno.

Co jest nie tak, że nie działa ta strzałka od początku dobrze?

----------

## SlashBeast

```
ragnarok ~ # cat /etc/hal/fdi/policy/10osvendor/10-keymap.fdi|wgetpaste

Your paste can be seen here: http://paste.pocoo.org/show/191045/
```

Niech hal ma pojecie, ze chcesz polska mape klawiszy.

btw. hal ssie, ostro. Osobiscie go wywalilem i siedze ze starym, dobrym, niepsujacym nic xorg.conf.

----------

## sasq

Mój plik 10-keymaps.fdi wygląda dokładnie tak samo.

No, może z wyjątkiem tej linijki:

```
<merge key="input.x11_options.AutoRepeat" type="string">220 50</merge>
```

Przydatne to, więc sobie też dodałem  :Wink: 

Niestety nadal HAL uważa, że strzałka w górę powinna produkować tyldę ;P

Czy może mieć na to jakiś wpływ to, że u mnie ten plik jest w ścieżce /etc/hal/fdi/policy/10-keymap.fdi zamiast /etc/hal/fdi/policy/10osvendor/10-keymap.fdi? [robiłem według instrukcji z HOWTOsów Gentoo i tam podawali takie].

Choć wydaje mi się, że nie, bo gdy zmieniałem jego zawartość i restartowałem HAL, to zauważał zmiany, co widać po logu z X.org zamieszczonym wcześniej. Mapę klawiszy poprawnie ustawił na pl, tylko coś z tą strzałką w górę sobie nie radzi  :Razz: 

W sumie mam trzy pliki w /etc/hal/fdi/policy/, o takiej zawartości:

10-input-policy.fdi

```
<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">

  <device>

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

      <match key="info.capabilities" contains="button">

        <match key="info.addons.singleton" contains_not="hald-addon-input">

          <append key="info.addons.singleton" type="strlist">hald-addon-input</append>

        </match>

      </match>

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

        <match key="info.addons.singleton" contains_not="hald-addon-input">

          <append key="info.addons.singleton" type="strlist">hald-addon-input</append>

        </match>

        <match key="info.capabilities" contains_not="button">

          <append key="info.capabilities" type="strlist">button</append>

        </match>

      </match>

    </match>

  </device>

</deviceinfo>
```

10-keymap.fdi

```
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<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.keys">

      <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">pl</merge>

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

      <merge key="input.x11_options.AutoRepeat" type="string">220 50</merge>

    </match>

  </device>

</deviceinfo>
```

10-x11-input.fdi

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<deviceinfo version="0.2">

  <device>

    <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode -->

    <match key="input.product" contains="QEMU USB Tablet">

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

    </match>

    <!-- FIXME: Support tablets too. -->

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

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

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

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

      </match>

    </match>

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

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

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

      </match>

    </match>

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

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

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

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

      </match>

    </match>

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

      <!-- If we're using Linux, we use evdev by default (falling back to

           keyboard otherwise). -->

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

      <-- merge key="input.x11_options.XkbModel" type="string">evdev</merge -->

      <merge key="input.x11_options.XkbRules" type="string">base</merge>

      <merge key="input.x11_options.XkbLayout" type="string">pl</merge>

      <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

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

      </match>

    </match>

  </device>

</deviceinfo>
```

 *SlashBeast wrote:*   

> btw. hal ssie, ostro.

 

No z jednej strony ssie. Z drugiej jednak po raz pierwszy wykrył mi poprawnie trzy dodatkowe klawisze do usypiania/budzenia komputera, więc może nie jest aż taki zły  :Wink: 

 *SlashBeast wrote:*   

> Osobiscie go wywalilem i siedze ze starym, dobrym, niepsujacym nic xorg.conf.

 

Hmm... A jak go wywalić? Bo mój X.org na chama bierze najpierw ustawienia z HAL.

W sumie to rzeczywiście, configi HAL wydają się i tak używać tych samych opcji, co xorg.conf, i tak trzeba je poprawiać ręcznie, więc chyba nie ma sensu puszczać wszystkiego tak do okoła  :Razz:   Zwłaszcza, że nawet X.org oficjalnie wycofuje się ze wsparcia dla HAL ;P  http://xorg.freedesktop.org/wiki/XorgHAL

----------

## dziadu

Czy problem jest tylko w X czy tez w konsoli? Czy sprawdzales jeden terminal, czy kilka (xterm, urxvt, konsole, ...)?

----------

## sasq

W całym X. Wciskanie strzałki w górę w aterm daje tyldę, a w programach z KDE [np. kwrite, konsole] po prostu nic się nie dzieje, kursor nie reaguje, jakby ten klawisz był martwy. W wirtualnych terminalach tekstowych wszystko działa normalnie.

Dopiero gdy ręcznie wywołam setxkbmap pl, to strzałka w górę zaczyna działać.

----------

## SlashBeast

Przerestartowales hala?

A jak go wywalic - do use "-hal", wywalic go z systemu i moj xorg.conf, gdzie mam inputy: http://paste.pocoo.org/show/191102/

Generalnie chodzi o to:

```
Section "ServerFlags"

   Option   "AutoAddDevices"   "false"

EndSection
```

I wtedy Xorg bierze inputy z xorg.conf.

----------

## sasq

 *SlashBeast wrote:*   

> Przerestartowales hala?

 

Tak. Robię to za każdym razem, gdy coś zmienię w jego configach, zgodnie z instrukcją.

 *SlashBeast wrote:*   

> A jak go wywalic - do use "-hal", wywalic go z systemu

 

To on nie jest potrzebny do niczego innego? Żadna inna aplikacja tego nie używa? Widziałem, że wiele pakietów miało flagę USE "hal" i miałem ją włączoną, bo wydawało mi się, że HAL to jakiś kluczowy składnik systemu związany z obsługą urządzeń.

 *SlashBeast wrote:*   

> i moj xorg.conf, gdzie mam inputy: http://paste.pocoo.org/show/191102/
> 
> Generalnie chodzi o to:
> 
> ```
> ...

 

OK dzięki. Jak nie uda się z tym HALem, to skorzystam z tego.

----------

## SlashBeast

Hal jest potrzebny by pcmanfm/nautilus/costam-z-kde itp. potrafilo automontowac. Ja, jako, ze nie mam hala uzywam pmount (nie wymaga wpisu w fstabie). Wpinam dysk usb (szyfrowany!) pmount sdb1 i jest prompt o haslo, potem montuje do /media to, tak samo pendrivy, telefon itp.

----------

