David Madore's WebLog: Ubuntu, mon touchpad, et la configurabilité

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #1755 [older| permalink|newer] / ↓Entrée #1755 [précédente| permalien|suivante] ↓

(samedi)

Ubuntu, mon touchpad, et la configurabilité

Tous mes ordinateurs tournent sous un OS basé sur Linux. Comme il faut, malgré tout, varier un petit peu les supplices, j'en ai quelques uns (essentiellement, mes serveurs) qui utilisent Debian (la distribution qui retire tout ce qui ressemble à de la documentation, histoire que vous soyez plus Libres), et quelques uns (mon Eee PC, ma machine de bureau) qui utilisent le dérivé de Debian beaucoup plus populaire que l'original, Ubuntu. Les maux sont différents : Debian, par exemple, prend un grand soin à ce que la version de Firefox distribuée ne s'appelle pas Firefox, mais Iceweasel (parce que Firefox n'est pas Libre[#]), et, comme il leur faut quelque chose comme deux ans pour rechercher et remplacer toutes les occurrences de Firefox par Iceweasel, on se retrouve avec une version bien ancienne sur le système. Avec Ubuntu, le problème est plutôt que dès que vous jouez à configurer ne serait-ce qu'epsilonesquement le système, vous êtes sûrs qu'à la prochaine version votre configuration sera partie à l'eau.

Tous les six mois, donc, j'installe la nouvelle Ubuntu, et tous les six mois je dois passer quelques jours à me battre contre la façon dont Ubuntu a décidé de m'empêcher de configurer mon système aux petits oignons[#2].

Le gag récurrent, c'est le touchpad de mon Eee PC. Je tiens à désactiver un truc affreux qui s'appelle le tapping (c'est-à-dire le fait que tapper simplement le touchpad, sans déplacer le doigt, simule un click de souris) : je trouve cette fonctionnalité insupportable parce qu'elle provoque des clicks intempestifs dès qu'on effleure le touchpad. En revanche, comme un touchpad n'a pas de molette, j'aime avoir une méthode de scrolling, soit en déplaçant le doigt au bord du touchpad (scrolling au bord), soit en déplaçant deux doigts n'importe où sur le touchpad (scrolling à deux doigts). À chaque nouvelle Ubuntu, donc, je dois trouver moyen de configurer le touchpad pour désactiver le tapping et activer le scrolling au bord et le scrolling à deux doigts (si possible, horizontal aussi bien que vertical).

Avec la Ubuntu 8.04, je faisais ma configuration du touchpad en mettant la section suivante dans le fichier xorg.conf :

Section "InputDevice"
       Identifier      "Synaptics Touchpad"
       Driver          "synaptics"
       Option          "SendCoreEvents"        "true"
       Option          "Device"                "/dev/psaux"
       Option          "Protocol"              "auto-dev"
       Option          "VertEdgeScroll"        "true"
       Option          "HorizEdgeScroll"       "true"
       Option          "UpDownScrolling"       "false"
       Option          "LeftRightScrolling"    "false"
       Option          "LeftEdge"              "53"
       Option          "RightEdge"             "1099"
       Option          "TopEdge"               "48"
       Option          "BottomEdge"            "720"
       Option          "PalmDetect"            "0"
       Option          "TapButton1"            "0"
       Option          "TapButton2"            "0"
       Option          "TapButton3"            "0"
       Option          "SHMConfig"             "true"
       Option          "RBCornerButton"        "0"
       Option          "RTCornerButton"        "0"
       Option          "MinSpeed"              "0.4"
       Option          "MaxSpeed"              "0.8"
       Option          "VertTwoFingerScroll"   "true"
       Option          "HorizTwoFingerScroll"  "true"
EndSection

Ubunut 8.10 a décidé que ce n'était plus ça la bonne façon de faire : il fallait maintenant passer par le démon HAL. J'ai donc dû réécrire ma config sous forme d'un fichier /etc/hal/fdi/policy/dmadore-elantech-touchpad.fdi, contenant :

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" string="ETPS/2 Elantech Touchpad">
      <!-- Elantech touchpad should be handled by Synaptics driver -->
      <merge key="input.x11_driver" type="string">synaptics</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
      <merge key="input.x11_options.SHMConfig" type="string">true</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.UpDownScrolling" type="string">false</merge>
      <merge key="input.x11_options.LeftRightScrolling" type="string">false</merge>
      <merge key="input.x11_options.LeftEdge" type="string">53</merge>
      <merge key="input.x11_options.RightEdge" type="string">1099</merge>
      <merge key="input.x11_options.TopEdge" type="string">48</merge>
      <merge key="input.x11_options.BottomEdge" type="string">720</merge>
      <merge key="input.x11_options.PalmDetect" type="string">0</merge>
      <merge key="input.x11_options.TapButton1" type="string">0</merge>
      <merge key="input.x11_options.TapButton2" type="string">0</merge>
      <merge key="input.x11_options.TapButton3" type="string">0</merge>
      <merge key="input.x11_options.RBCornerButton" type="string">0</merge>
      <merge key="input.x11_options.RTCornerButton" type="string">0</merge>
      <merge key="input.x11_options.MinSpeed" type="string">0.4</merge>
      <merge key="input.x11_options.MaxSpeed" type="string">0.8</merge>
      <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
      <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
    </match>
  </device>
</deviceinfo>

Avec la Ubuntu 9.04, miraculeusement, le touchpad a continué à fonctionner comme je le voulais. Avec la 9.10, il a de nouveau cassé : cette fois-ci, le coupable était le démon gnome-settings-daemon, qui venait écraser mes réglages. Vous allez me dire : que ne m'en réjouis-je ? Ubuntu/Gnome a enfin prévu une façon de régler le fonctionnement du touchpad par une interface graphique (et notamment de désactiver le tapping, hosanna alléluia gloria in excelcis Gnomo). Le problème est que cette interface graphique est nettement moins fine que tous les réglages que je viens de décrire, et ne permet notamment pas d'activer à la fois le scrolling au bord et le scrolling à deux doigts. Mais un ami a fini par me donner la solution : on peut désactiver sélectivement des bouts de gnome-settings-daemon, en l'occurrence en positionnant à faux la clé /apps/gnome_settings_daemon/plugins/mouse/active dans l'éditeur de configuration Gnome (=le mammouth qui est en train de se mettre à ressembler à la base de registres Windows).

Ubuntu 10.04 : les choses ont de nouveau cassé : le démon HAL, qui était le Brave New World il y a 1½ an est maintenant rejeté et banni : mon fichier /etc/hal/fdi/policy/dmadore-elantech-touchpad.fdi est maintenant sans effet. Maintenant il faut passer par le programme xinput et ajouter quelque chose comme ceci dans le .gnomerc ou ailleurs :

# Was: 2, 3, 0, 0, 1, 3, 2
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap Action" 0 0 0 0 0 0 0
# Was: 75
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Middle Button Timeout" 90
# Was: 1, 0, 0
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Edge Scrolling" 1 1 0
# Was: 1, 0
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Two-Finger Scrolling" 1 1
# Was: 0.400000, 0.700000, 0.036711, 40.000000
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Move Speed" 0.4 0.8 0.04 40.0
# Was: 53, 1099, 48, 720
#xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Edges" 53 1099 48 720

(Je n'ai pas configuré exactement les mêmes choses que dans les exemples précédent, mais c'est l'idée.)

Bon sang, moi je m'en fous de comment on configure le touchpad, je suis d'accord pour écrire ce genre de trucs à la mains quand je veux une configuration plus fine que ce que l'interface graphique standard permet, et je suis même d'accord que le nouveau système est plutôt meilleur (beaucoup plus pratique à modifier au vol), mais, bordel de merde, est-ce vraiment indispensable que le mécanisme de configuration change tous les six mois ?

(Remarquez qu'il n'y a pas qu'Ubuntu qui joue à ça : je me suis aussi énervé, sur l'ordinateur de ma maman qui est un Mac, contre Apple qui s'est amusé à éliminer dans Mac OS 10.5 ou 10.6 la base de données NetInfo qui était censée être Le Grand Truc de Mac OS, et pareil pour la découverte des imprimantes par CUPS remplacée par Bonjour.)

[#] Ne cherchez pas, ce sont des psychorigides qui ont une notion de liberté à peu près aussi déconnectée de la réalité que l'est l'usage du mot ouvert quand Apple/Adobe (vous savez, les deux big brothers interchangeables qui se livrent une guéguerre de cour de récré) dit promouvoir les standards ouverts sur le Web.

[#2] Quand je raconte mes malheurs, les gens réagissent souvent soit en me disant ah ? moi je n'ai pas de problèmes, soit en me disant que c'est bien ma faute, je n'avais qu'à utiliser Windows / Mac OS / quidlibet. La seule conclusion à en tirer, c'est que les gens ne configurent pas le système comme moi : je n'ai jamais trouvé d'explication, par exemple, sur comment avoir une touche Compose convenable sous Windows ou Mac OS (de sorte que taper Compose+apostrophe+e donne un ‘é’, par exemple).

↑Entry #1755 [older| permalink|newer] / ↑Entrée #1755 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]