[Astuce] Désactiver un bout de son touchpad

linux 13 nov. 2015

Je vous vois venir. « MER IL ET FOU ». Pourquoi diable vouloir désactiver un bout de son touchpad ?

 

La réponse est pourtant fort simple. J’ai la… chance… d’avoir dans mon laptop perso un touchpad (le « pavé tactile », comme ils disent –je connais des traducteurs qui confondent allègrement « carré » et « parallélépipède rectangle » mais là n’est pas la question) sensible sur toute sa surface… y compris sur la zone en théorie réservée au clic (gauche/droit). J’explique un peu plus en détails : sur certains modèles, les boutons physiques de clic sont placés sous la partie tactile. Pas moi : ils sont intégrés au carré qui est sensible au toucher. Eh ben ça me fait suer.

 

Parce qu’avec mes gros doigts, quand je veux garder le clic actif (genre pour sélectionner une zone sur l’écran), il prend en compte le fait que je suis aussi en train de le toucher. Donc si j’ajoute un second doigt pour faire ma sélection, le curseur se tire à l’autre bout de l’écran et fait n’importe quoi. Ça a le don de m’agacer. Alors à la maison, je prends une souris USB, mais en déplacement ?

souris

Voilà. Je vais donc sous vos yeux ébahis « transformer » mes boutons physiques sensibles au toucher en une zone « morte », non prise en compte pour le toucher. Comme si j’avais réellement 2 boutons externes. Évidemment, on fait ça sous GNU/Linux, et en ligne de commande. On est pas des rigolos. À noter que l’astuce fonctionne également sur des systèmes BSD, puisque l’outil utilisé pour cette bidouille est disponible.

 

L’informatique, c’est magique

Premier test

On va donc utiliser synclient, qui est le petit outil de Synaptic pour gérer le pavé tactile sous Linux.

Concrètement, il y a tout un tas de paramètres que peut gérer synclient. Deux d’entre eux sont… la position logique des « bords » du touchpad, et le décalage entre ces bords et la zone tactile réellement active. On va donc modifier ce second paramètre pour le bord du bas, celui où se situent les boutons, et le remonter virtuellement afin que le toucher sur cette zone soit ignoré.

Voyons voir ce qu’on a pour le moment :

1
2
3
dabicon@MrSlave:~$ synclient -l | grep BottomEdge
BottomEdge = 4487
AreaBottomEdge = 0

On a donc une « distance » de 4487 entre le haut et le bas du touchpad, et un décalage de 0 entre le bord inférieur et le début de la zone tactile. En gros, toute la hauteur du touchpad est sensible. C’est bien ce que l’on souhaite changer ! 😉

Dans le coup, j’ai sorti une règle et mesuré en gros la hauteur de mon touchpad, et la hauteur de la zone que je souhaite désactiver. Ce qui me donne un beau ratio de… 92% de la hauteur à conserver. On applique ça aux 4487 de départ, et on obtient dans mon cas une distance de 4128.

On peut tester (provisoirement du coup) ce réglage pour l’affiner, en entrant dans le terminal :

1
dabicon@MrSlave:~$ synclient AreaBottomEdge=4128

Normalement, c’est magique, le bas du touchpad vient de décéder. C’est la seule entité maltraitée au cours de cet article, promis juré. Je crache pas, parce qu’il faudrait du coup ajouter l’écran à la liste.

 

Réglons définitivement le souci

Maintenant que le réglage est validé, sachez que le premier redémarrage venu vous fera perdre votre bataille contre la coalition des Équipements Électriques et Électroniques, dont le seul but est de vous ralentir dans votre travail.

Rendons donc cette modification permanente !

Éditez (en tant que super-utilisateur pour le coup) le fichier /usr/share/X11/xorg.conf.d/50-synaptics.conf, localisez la section qui s’applique aux clickpads et ajoutez-y l’option qui va bien. Vous devriez obtenir un truc comme ça :

1
2
3
4
5
6
7
8
9
10
11
# This option enables the bottom right corner to be a right button on
# non-synaptics clickpads.
# This option is only interpreted by clickpads.
Section "InputClass"
Identifier "Default clickpad buttons"
MatchDriver "synaptics"
Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
# To disable the bottom edge area so the buttons only work as buttons,
# not for movement, set the AreaBottomEdge
Option "AreaBottomEdge" "4128"
EndSection

Un petit redémarrage, et ça devrait être tout bon ! :mrgreen:

 

Et pour faire ça encore plus proprement, il serait sage de placer cette modification dans un autre fichier enregistré au même endroit, dont le nom débuterait par un nombre supérieur, pourquoi pas 60-touchpadbuttons.conf.

Mots clés