Configurer son touchpad avec HAL
La semaine dernière j’ai acheté mon premier laptop. Je n’avais jamais eu à configurer ce genre d’engin sous linux mais il faut avouer qu’avec HAL et policykit les choses sont grandements facilitées. Juste 2 petits problèmes à regler avec le touchpad :
- par défaut le scrolling vertical sur le bord du touchpad ne fonctionnait pas.
- impossible d’avoir une action de clic avec un ‘tap’ sur le touchpad.
Connaissant les problème de clavier US à la place de clavier FR avec HAL, je me suis dis qu’il fallait peut être procéder de la même manière. J’ai donc regardé dans /usr/share/hal/fdi/policy/10osvendor/ s’il n’y avait pas un fichier en rapport avec synaptics. Bonne intuition puisque dans ce dossier ce trouve le fichier 11-x11-synpatics.fdi que je me suis empréssé de copier dans /etc/hal/fdi/policy/.
Voici donc la structure du fichier par défaut :
cat /etc/hal/fdi/policy/11-x11-synaptics.fdi
<?xml version= »1.0″ encoding= »ISO-8859-1″?>
<deviceinfo version= »0.2″>
<device>
<match key= »info.capabilities » contains= »input.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. –>
<!– EXAMPLES:
Switch on shared memory, enables the driver to be configured at runtime
<merge key= »input.x11_options.SHMConfig » type= »string »>true</merge>
Maximum movement of the finger for detecting a tap
<merge key= »input.x11_options.MaxTapMove » type= »string »>2000</merge>
Enable vertical scrolling when dragging along the right edge
<merge key= »input.x11_options.VertEdgeScroll » type= »string »>true</merge>
Enable vertical scrolling when dragging with two fingers anywhere on the touchpad
<merge key= »input.x11_options.VertTwoFingerScroll » type= »string »>true</merge>
Enable horizontal scrolling when dragging with two fingers anywhere on the touchpad
<merge key= »input.x11_options.HorizTwoFingerScroll » type= »string »>true</merge>
If on, circular scrolling is used
<merge key= »input.x11_options.CircularScrolling » type= »string »>true</merge>
For other possible options, check CONFIGURATION DETAILS in synaptics man page
–>
</match>
</device>
</deviceinfo>
Toute la partie en bleu est commentée (entre <!– et –>). Mon touchpad ne supportant pas le multitouch j’ai laissé commenté les options avec VertTwoFingerScroll et HorizTwoFingerScroll. Malheureusement pour moi, ce fichier ne comporte pas d’options concernant l’action à réaliser lors d’un tap sur le pad. Un petit man synaptics plus tard et un petit 1/4 d’heure de lecture m’ammènent vers les options TapButton1, TapButton2 et TapButton3 qui définissent les actions à réaliser lors des tap. Je trouve aussi l’option HorizEdgeScroll, qui, comme VertEdgeScroll, autorise ou pas le scrolling horizontal. Quelques modif plus tard, je me retouve donc avec un fichier comme cela :
<?xml version= »1.0″ encoding= »ISO-8859-1″?>
<deviceinfo version= »0.2″>
<device>
<match key= »info.capabilities » contains= »input.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. –>
<!– EXAMPLES:
Switch on shared memory, enables the driver to be configured at runtime –>
<merge key= »input.x11_options.SHMConfig » type= »string »>true</merge>
<!– Maximum movement of the finger for detecting a tap –>
<merge key= »input.x11_options.MaxTapMove » type= »string »>750</merge>
<!– Enable vertical scrolling when dragging along the right edge –>
<merge key= »input.x11_options.VertEdgeScroll » type= »string »>true</merge>
<!– Enable vertical scrolling when dragging with two fingers anywhere on the touchpad
<merge key= »input.x11_options.VertTwoFingerScroll » type= »string »>true</merge> –>
<!– Enable horizontal scrolling when dragging with two fingers anywhere on the touchpad
<merge key= »input.x11_options.HorizTwoFingerScroll » type= »string »>true</merge> –>
<!– If on, circular scrolling is used
<merge key= »input.x11_options.CircularScrolling » type= »string »>true</merge> –>
<!– For other possible options, check CONFIGURATION DETAILS in synaptics man page
–>
<merge key= »input.x11_options.HorizEdgeScroll » type= »string »>true</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>
</match>
</device>
</deviceinfo>
En théorie, un redémarrage de HAL devrait suffir à prendre ce fichier en compte mais ce n’est pas le cas. Je décide donc de redémarrer la machine. Et là miracle!! Tout fonctionne! Je me dis que pour prendre en compte les modif sans redémarrer, j’aurais peut être du décharger le module synaptics puis relancer HAL.