Looking for Computer Science  & Information Technology online courses ?
Check my new web site: https://www.yesik.it !

Après la mise à jour de Debian Lenny vers Debian Squeeze sur mon portable, j'ai eu la désagréable surprise de constater (entre autres) que mon trackpad ne fonctionnait plus comme avant. Si je pouvais toujours déplacer le pointeur avec, pour cliquer je devais utiliser les boutons (physiques) – et non plus me contenter de tapoter sur la zone sensible.

L'explication se trouve dans les nouveautés de xserver-xorg-input-synaptics:

sh$ gunzip < /usr/share/doc/xserver-xorg-input-synaptics/NEWS.Debian.gz 
[...]
xserver-xorg-input-synaptics (1.1.1~git20090510-1) unstable; urgency=low

  * Tapping has been disabled by default on many touchpads by upstream, see
    the "NOTES" section in the synaptics(4) manpage for a short overview
    about how defaults are calculated.
    If you want to re-enable it, you can do so from within the X
    environment by running the following commands in a terminal:

        $ synclient TapButton1=1
        $ synclient TapButton2=2
        $ synclient TapButton3=3

    Note that the configuration will not be permanently modified, to do
    so assign the above option values in your xorg.conf (see the synaptics(4)
    manpage or the documents in /usr/share/doc/xserver-xorg-input-synaptics
    for additional details).  Another alternative is to use desktop
    environment specific tools like gpointing-device-settings or touchfreeze.

 -- David Nusinow <dnusinow@debian.org>  Sat, 11 Apr 2009 16:23:11 -0400

Visiblement, c'est un choix volontaire des développeurs du pilote de trackpad synaptics que de désactiver le tapping. Pour être plus précis, le tapping est maintenant désactivé en standard pour les trackpads équipés d'au moins un bouton physique. Pour citer le manuel de synaptics(4):

sh$ man synaptics
[...]
NOTES
      Tapping is disabled by default for touchpads with one or more 
      physical buttons.  To enable it you need to map tap actions to
      buttons. See the "TapButton1",  "TapButton2"  and "TapButton3" options.
[...]

Comme on peut le lire toujours dans le man ou encore sur le wiki de Debian, la ré-activation du tapping nécessite de modifier /etc/X11/xorg.conf (ou accessoirement créer/modifier le fichier /etc/X11/xorg.conf.d/synaptics.conf) pour y ajouter la configuration spécifique que vous souhaitez pour votre touchpad:

sh$ cat /etc/X11/xorg.conf.d/synaptics.conf
#
# Custom configuration for Synaptics touchpads
#
Section "InputClass"
	Identifier	"Touchpad"  # OBLIGATOIRE
	MatchIsTouchpad "yes"       # OBLIGATOIRE
	Driver		"synaptics" # OBLIGATOIRE
	
	Option		"TapButton1"    "1"
EndSection

Dans la configuration ci-dessous, les lignes marquées obligatoires sont ... obligatoires pour identifier le périphérique concerné. La configuration spécifique ne concerne donc dans cet exemple que l'option TapButton1. D'après le manuel de synaptics, cela correspond à un tap en dehors d'un coin du pad:

sh$ man synaptics | sed -n '/Option "TapButton1"/,/^$/p'
       Option "TapButton1" "integer"
              Which  mouse  button is reported on a non-corner one-finger tap.
              Set to 0 to disable. Property: "Synaptics Tap Action"

Piège:

Un piège ici est qu'il existe aussi TapButton2 et TapButton3.

Or, contrairement à ce qu'on pourrait penser (en tous cas, c'est ce que moi j'ai pensé tout d'abord), le 1, 2, et 3 ne correspondent pas au nombre de taps – mais au nombre de doigts utilisés pour cliquer! En effet, le nouveau driver pour touchpad synaptics gère le multitouch sur les pads compatibles. Je vous laisserai chercher dans le manuel les options correspondantes. Mais beaucoup sont activées par défaut. Ainsi, par exemple, avec les nouveaux défauts, le scrolling vertical ne se fait donc plus en glissant un doigt sur le bord droit du pad, mais en glissant simultanément deux doigts n'importe où sur le pad...

En plus du tap, j'avais aussi pris l'habitude d'utiliser le coin haut-droit du pad pour simuler le clic sur le bouton central de la souris. Très pratique pour ouvrir des pages web dans un nouvel onglet. Cette fonctionnalité est aussi désactivée par défaut dans Squeeze. Le réactiver nécessite de modifier encore xorg.cong (ou synaptics.conf) pour ajouter l'option suivante:

       Option "RTCornerButton" "2" # "tap" en haut à droite pour "clic-centre"

Bien entendu, toutes les modifications ne sont prises en compte qu'au redémarrage du serveur X. À l'inverse, pour un test rapide – ou une modification ponctuelle – vous pouvez utiliser synclient:

sh$ synclient RTCornerButton=2

Oh, le vilain Gnome!

Certaines versions de Gnome interceptent le comportement du touchpad – quelle que soit par ailleurs la configuration de celui-ci dans xorg.conf. Si malgré vos efforts de configuration, le touchpad semble toujours refuser de fonctionner comme vous le souhaitez, c'est peut-être le cas sur votre machine. Un indice qui trahit ce comportement est que touchpad fonctionne comme configuré dans l'écran de connexion de gdm (le login graphique), puis change mystérieusement de comportement une fois la session ouverte.

Gnome touchpad.png

Configuration du TouchPad sous Gnome — Sous certaines versions de Gnome, le panneau de configuration de la souris (gnome-mouse-properties) permet de modifier le comportement du touchpad. Ces préférences sont prioritaires par rapport à la configuration définie dans xorg.conf.


Face à ce problème, vérifiez dans Système > Préférences > Souris si vous avez un onglet Touchpad. Et si c'est le cas, vous devrez y confirmer votre configuration pour qu'elle soit prise en compte par Gnome...


Conclusion

Bien entendu, je n'ai abordé ici que les options pour récupérer peu ou prou le comportement antérieur du touchpad. Mais, si les nouveaux défauts du driver Synaptics font râler sur le mode "ça marchait bien avant", avec un peu de curiosité cela devient l'occasion de creuser un peu les options de ce pilote. Et de découvrir les possibilités et les nouveautés apportées par cette dernière version! Un mal pour un bien, finalement...

Ressources