Marre du touchpad ? Xinput est votre ami

Si comme moi, le touchpad de votre ordinateur portable vous fait tourner en bourrique. Si vous en arrivez, comme moi, à recourir au DuckTape et au morceau de carton pour l'éradiquer. C'est vrai quoi, c'est soulant un touchpad ! surtout quand il est de mauvaise qualité ou que vous ne vous en servez jamais. Il est toujours là pour bouger le curseur au mauvais moment ( quand on tape du texte !!! sisi, ca vous est déja arrivé ! ). Mort aux touchpads !!

Alors hier, j'ai pris la décision de lui fermer le clapet définitivement. Sans rire : un morceau de carton et du DuckTape, c'est super efficace et pas prise de tete. Un peu radical, soit. C'est ce que m'a dit JLaunay sur twitter, qui m'a proposé une solution : utiliser Xinput. Un article de son blog permet de comprendre le principe ( lisez aussi les commentaires ).

Je découvre et fais un petit xinput --list pour savoir ce qu'il y a dans le ventre de mon Hp.

  ⎡ Virtual core pointer                      id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Logitech USB Optical Mouse                id=10   [slave  pointer  (2)]
  ⎜   ↳ ImPS/2 Generic Wheel Mouse                id=13   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ Power Button                              id=6    [slave  keyboard (3)]
      ↳ Video Bus                                 id=7    [slave  keyboard (3)]
      ↳ Power Button                              id=8    [slave  keyboard (3)]
      ↳ Sleep Button                              id=9    [slave  keyboard (3)]
      ↳ hp webcam                                 id=11   [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
      ↳ HP WMI hotkeys                            id=14   [slave  keyboard (3)]

Pour ma part, le touchpad est répertorié sous l'id 13 (ImPS/2 Generic Wheel Mouse). La logitech Usb est la souris externe. En suivant l'aide de Jlaunay, je tente un

  xinput set-int-prop 13 "Device Enabled" 8 0

Et miracle, ce fichu touchpad est réduit au silence \\o/ Pour réactiver le touchpad :

  xinput set-int-prop 13 "Device Enabled" 8 1

il me suffit donc de faire deux alias dans mon ~/.zshrc

  alias nopad='xinput set-int-prop 13 "Device Enabled" 8 0'
  alias pad='xinput set-int-prop 13 "Device Enabled" 8 1'

Et l'affaire est réglée. Merci encore à JLaunay pour l'aide, je n'y serais pas arrivé tout seul, et le DuckTape c'est vrai que ça fonctionne, mais c'est moins constructif !!

Edit du 27 octobre 2011

Suite au commentaire de Pat Guano, je rajoute ici un script de sa composition, qui permet la meme chose mais en beaucoup plus propre :

  #!/bin/sh
  # Désactiver le touchpad
  DNAME="Generic Wheel Mouse"
  DEV=`xinput --list | grep "$DNAME"|cut -d= -f2|cut -c1,2`
  xinput -set-prop "$DEV" "Device Enabled" 0
  exit

Je vous remets également le contenu de son commentaire (Ça s'est déjà vu que des commentaires se perdaient :/) :

Il devrait suffire d'écrire xinput set-int-prop 13 "Device Enabled" 1. En effet, c'est ici que j'ai vu la première fois le '8'. L'idée avec les alias n'est pas mal, mais les IDs peuvent changer avec un update du système. Ça m'est arrivé. Des variables, bien placée, aident à compenser cet effet. Aussi, un script est plus facilement adaptée aux noms du «device». Alors, je favorise la version avec grep et cut:

  DNAME="Touchpad"
  DEV=`xinput --list | grep "$DNAME"|cut -d= -f2|cut -c1,2`
  xinput -set-prop "$DEV" "Device Enabled" 0`` 
Vus : 1026
Publié par botchchikii : 30