Grab The Blaster di Alessio Biancalana

Xorg, ma che mi combini?

Leggendo il forum di ArchLinux, come pure i vari messaggi d'aiuto inviati sul canale #archlinux, ci si può rendere subito conto che il rilascio del nuovo Xorg 1.5.3 ha portato prevalentemente crisi nel mondo ArchLinux e Linux in generale.

Questo fenomeno di panico generale è dovuto alla nuova feature di hotplugging, con la quale Xorg si occupa solamente di gestire l'output a video; l'input non viene più gestito dai vecchi driver, ma attraverso il nuovo driver evdev Xorg delega tutto ciò che riguarda mouse, tastiera e touchpad ad HAL.

In questo modo viene reso possibile il riconoscimento "a caldo" di parecchi dispositivi come tastiere o mouse particolari, ma di contro possiamo accorgerci di come una configurazione minimale risenta tantissimo di questa nuova peculiarità: le strade possibili sono due, dunque.

La prima consiste nell'aggiungere in coda al nostro xorg.conf le seguenti righe:

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

con le quali possiamo disabilitare l'hotplugging.

Dal canto mio, però, non posso che consigliare la seconda via, ovvero configurare per benino hal in quanto, essendo presente la funzione di hotplugging, non vedo motivi per non usarla; e seguendo questo semplice procedimento, ci accorgeremo che la configurazione di HAL per quanto riguarda l'input è relativamente semplice.

Andiamo ad editare /etc/hal/fdi/policy/10-keymap.fdi, con qualunque editor, sia esso gedit, nano, vi o emacs; all'interno di questo file, per ora vuoto, incolliamo tutto ciò:

<?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">kbd</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">it</merge>
</match>
</device>
</deviceinfo>

Salviamo, riavviamo il sistema (per riavviare in modo facile sia HAL che Xorg), e andiamo a spiegare cosa dicono le righe appena incollate: quello proposto da me è semplicemente un file di esempio per far funzionare, almeno in partenza, la tastiera, senza incappare in brutti problemi di localizzazione.

Sia chiaro, quelle righe postate poco sopra non sono la soluzione a tutti i mali; anzi, è raccomandato da parte mia analizzarne il contenuto e ottimizzare la configurazione per quanto riguarda il proprio hardware.

Con il nuovo Xorg è cambiata anche la maniera di gestire il touchpad, che viene gestito sempre attraverso il nostro amatissimo/odiatissimo (fate vobis, dipende dai punti di vista) HAL. Anche per il touchpad bastano poche righe nell'apposito file /etc/hal/fdi/policy/11-x11-synaptics.fdi, anch'esso da editare con l'editor di testo puro che preferiamo. Le righe che renderanno il touchpad funzionante al meglio, con scrolling laterale abilitato e tap-click, sono queste:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<match key="info.product" contains="Synaptics TouchPad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Arbitrary options can be passed to the driver using
the input.x11_options property since xorg-server-1.5. -->
<!-- EXAMPLE:
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-->
</match>
<!--     <match key="info.product" contains="AlpsPS/2 ALPS">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="appletouch">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="bcm5974">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>-->
<!--
<merge key="input.x11_options.touchpadoff" type="string">0</merge>
<merge key="input.x11_options.shmconfig" type="string">on</merge>-->
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">2</merge>
<merge key="input.x11_options.TapButton3" type="string">3</merge>
<merge key="input.x11_options.protocol" type="string">event</merge>
<merge key="input.x11_options.vertedgescroll" type="string">true</merge>
<merge key="input.x11_options.horizedgescroll" type="string">true</merge>
<merge key="input.x11_options.RightEdge" type="string">5300</merge>
<merge key="input.x11_options.LeftEdge" type="string">1700</merge>
<merge key="input.x11_options.BottomEdge" type="string">4200</merge>
<merge key="input.x11_options.TopEdge" type="string">1700</merge>
<!--<merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge> -->
<merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
</match>
</device>
</deviceinfo>

Ovviamente, cancelliamo le righe che riguardano lo scrolling se non abbiamo un touchpad che supporta lo scrolling laterale.

E dopo la piccola guida su come raccapezzarsi nel nuovo metodo di input di Xorg, andiamo a dare anche qualche critica.

C'è chi amava la configurazione statica attraverso Xorg.conf, c'è chi odiava questo file pieno di righe incomprensibili ai più; io dico la mia, avendo avuto un rapporto con il file xorg.conf di tipo odi et amo.

Apprezzo molto il nuovo metodo di input. In questo periodo mi sto occupando della diffusione di GNU/Linux verso l'utenza di massa, e questo non è esattamente il modo giusto per portare il pinguino nelle case degli italiani: una delle cose di cui l'utente medio è spaventato è l'editing dell'xorg.conf, o di altri file. Diciamo pure che ritengo queste nuove modifiche molto neutrali, da questo punto di vista, nel senso che il niubbo completo non troverebbe molta differenza tra il non capire nulla di xorg.conf e il non capire nulla dei file di configurazione di HAL. Credo che però sviluppando una buona GUI che si occupi di togliere, inserire e cambiare le linee nei due file che abbiamo editato precedentemente, possa essere un buon passo per far avvicinare l'utente medio al mondo del pinguino, senza dover per forza fargli usare una riga di comando.

Un plauso speciale a tutti coloro che scrivono di ArchLinux e che sono aggregati sul Planet, i quali hanno analizzato la nuova struttura di Xorg prima di me, hanno tratto le debite conclusioni e fatto qualche simil-guida. Da tutti i loro post ho preso spunto per scrivere il mio, che in qualche modo è solo una somma di cose già dette, più qualche piccola aggiunta personale.

comments powered by Disqus