====== Touchpad ======
* Objet : touchpad
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : // Configuration du touchpad. //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi :
* Création par [[user>smolski]] le 27/04/2013 17:37
* Mis à jour par [[user>MicP]] le 24/02/2014 10:41
* Testé par: [[user>freddec]] le 24/04/2013
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=6760 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Préambule =====
Ce tuto est valide pour les versions antérieurs à Debian 10, En effet le serveur graphique xorg n'est par défaut plus utilisé même si installé pour être remplacé par wayland. Le package xserver-xorg-input-synaptics n'est plus installé. Pour plus d'informations [[https://www.debian.org/releases/buster/amd64/release-notes/ch-whats-new.fr.html#wayland-by-default-on-gnome|Release Note debian 10]]
Pour savoir si wayland ou xorg est utilisé par votre session utilisateur, vous pouvez consulter : [[https://qastack.fr/unix/202891/how-to-know-whether-wayland-or-x11-is-being-used|wayland ou x11]].
Cette page du wiki est la remise en forme d'un [[http://debian-facile.org/viewtopic.php?id=6734|topic issu du Forum DF]] \\
Les astuces qui suivent sont liées à l'utilisation de **synclient** (/usr/bin/synclient).
Synclient est apporté dans Debian via le paquet[[https://tracker.debian.org/pkg/xserver-xorg-input-synaptics|xserver-xorg-input-synaptics]]
En toute logique, pour peu que vous ayez un PC portable, et si l'installateur Debian a bien fait son travail, ce paquet est déjà installé sur votre machine.
Dans le cas contraire installez le via votre gestionnaire de paquet favori.
Synclient venant avec un paquet Xorg, ses fonctionnalités ne sont pas spécifiques à un environnement donné et il devrait fonctionner avec la majorité des Bureaux (XFCE, LXDE, Mate, Awesome etc...)
===== Synclient =====
Un bref descriptif est disponible sur la page de [[http://packages.debian.org/wheezy/xserver-xorg-input-synaptics|xserver-xorg-input-synaptics]]
==== Les options disponibles ====
Pour connaître les options disponibles via synclient:
man synaptics
Voici une liste en français des principales options offertes (source:[[http://doc.ubuntu-fr.org/touchpad|Ubuntu.fr]])
^ Paramètre ^ Explication ^
| LeftEdge | abscisse du bord gauche |
| RightEdge | abscisse du bord droit |
| TopEdge | ordonnée du bord supérieur |
| BottomEdge | ordonnée du bord inférieur |
| FingerLow | pression maximum en dessous de laquelle le driver suppose qu'on n’appuie plus sur le pavé tactile |
| FingerHigh | pression minimum au dessus de laquelle le driver suppose qu'on appuie sur le pavé tactile |
| MaxTapTime | temps maximum (en ms) en dessous duquel le driver interprète un tapotement sur le pavé tactile |
| MaxTapMove | nombre de mouvements maximum en dessous duquel le driver interprète un tapotement sur le pavé tactile |
| SingleTapTimeout | Temps après un tapotement pour le reconnaître comme une simple pression |
| EmulateMidButtonTime | temps maximum (en ms) en dessous duquel le driver interprète un clic « bouton du milieu » |
| VerScrollDelta | distance de déplacement minimum du doigt pour faire un défilement vertical |
| HorizScrollDelta | distance de déplacement minimum du doigt pour faire un défilement horizontal |
| MinSpeed | facteur de vitesse minimum pour le déplacement du curseur |
| MaxSpeed | facteur de vitesse maximum pour le déplacement du curseur |
| AccelFactor | facteur d'accélération pour le déplacement du curseur |
| EdgeMotionMinSpeed | facteur de vitesse minimum pour le défilement |
| EdgeMotionMaxSpeed | facteur de vitesse maximum pour le défilement |
| TapButton1 | configure le tapotement du nombre doigt (1, 2 ou 3) sur le bouton gauche |
| TapButton2 | configure le tapotement du nombre doigt (1, 2 ou 3) sur la molette |
| TapButton3 | configure le tapotement du nombre doigt (1, 2 ou 3) sur le bouton droit |
| UpDownScrolling | génère un événement équivalent à l’événement 4/5 d'une souris à roulette (active le défilement) |
| CircularScrolling | active le défilement circulaire (en cas d’ascenseurs diagonaux) |
| CircScrollDelta | distance de déplacement minimum du doigt pour faire un défilement circulaire |
| CircScrollTrigger | région à partir de laquelle le défilement circulaire commence (de 0 à 8 en fonction de la région) |
==== Vos options disponibles ====
Certaines des options peuvent ne pas être disponibles pour votre modèle de pad, pour connaître celles qui sont supportées:
synclient -l
==== Synclient en pratique ====
=== Activer/Désactiver le click gauche par un tap-tap ===
synclient TapButton1=1 PalmDetect=1
Remplacez 1 par 0 pour désactiver le tap-tap
=== Émuler le boutons droits et la (mi) molette d'une souris (bah oui, mimolette, souris...) :-o ===
Tout d'abord, configurer synclient comme suit :
synclient TapButton1=1 TapButton2=2 TapButton3=3
== Émulation d'un clique avec la molette ==
Si on veut qu'un tap-tap sur le coin supérieur gauche émule un clic milieu de la molette de la souris
synclient LTCornerButton=3
== Clique droit ==
Pour obtenir un clique droit en utilisant la zone supérieure gauche
synclient LBCornerButton=2
==== Rendre ces manipulations pérennes ====
Le seul hic avec synclient, c'est que toutes ces commandes ne sont pas mémorisées et doivent donc être refaites à chaque démarrage de votre session.
L'astuce consiste à placer vos commandes personnalisées dans un script [[:doc:programmation:bash | bash]] et à exécuter celui-ci automatiquement au lancement de votre environnement. (Je vous renvoie aux spécificités de votre environnement favori pour trouver la bonne méthode);
À titre d'exemple dans [[:doc:environnements:xfce:xfce | XFCE]] cela se trouve dans "Paramètre", "Session et démarrage" , "démarrage automatique", "Ajouter"
Vous pouvez également créer une entrée directement dans //~/.config/autostart// en vous inspirant des fichiers déjà existants
===== La cerise sur le gâteau ====
Si, comme notre ami //captnfab//, vous avez des pouces de diplodocus (en plus d'avoir un grand cou de girafe) 8-), et que cela occasionne des clics intempestifs sur votre pad, vous pouvez mettre en place le script suivant qui vous permettra d'activer/inactiver synclient en 2 temps 3 mouvements.
Voici un script shell « clickontap », exécutable, à placer dans votre [[:doc:programmation:shell:path |PATH]], de sorte qu'un appel à ''clickontap'' active le truc s'il est désactivé et vice-versa.
Fichier //**"clickontap"**// :
#!/bin/sh
VAL=$(synclient -l | grep TapButton1 | sed 's/.*= //')
VAL=$((1 - $VAL))
synclient TapButton1=$VAL
===== Copiez la configuration d'une distribution à l'autre ====
Vous aimeriez que votre touchpad fonctionne aussi bien sur votre distribution préférée que sur la distribution que vous aviez testé.\\
C'est possible simplement, grâce à cette ligne de commande qui va créer un script de configuration.
La méthode consiste à utiliser la commande ''sinclient -l'', qui permet de lister les paramètres en cours, et de rediriger la sortie de cette commande pour créer un script qui pourra être utilisé sur une autre distribution pour appliquer les paramètres sauvegardés.
Exécutez cette ligne de commande sur la distribution avec laquelle vous êtes satisfait du fonctionnement de votre touchpad,\\
récupérez le script qui aura été créé : "confSyn.sh",\\
et exécutez le script "confSyn.sh" sur la distribution pour avoir le même comportement du touchpad.
synclient -l | sed 's/Parameter settings:/synclient/;s/ //g;s/$/ \\/g;$ s/ \\/\n/' > confSyn.sh
Description de la ligne de commande :
^ Commande ^ Description ^
| ''synclient -l'' | Exécuter ''synclient'' avec l'option ''-l'' pour récupérer les paramètres en cours. |
| ''|'' |Connecter le flux de sortie de ''synclient'' à l'entrée de la commande ''sed'' |
| ''sed'' |Exécuter ''sed'' |
| '' ' '' | //Début de la suite de commandes que ''sed'' devra exécuter.// |
| ''s/Parameter settings:/synclient/;'' |Remplacer le texte : ''Parameter settings:'' par le texte : ''synclient''. |
| ''s/ //g;'' |Supprimer tous les caractères "espace". |
| ''s/$/ \\/g;'' |Ajouter les caractères " \" avant la fin de chaque ligne. |
| ''$ s/ \\/\n/'' |Remplacer, dans la dernière ligne, les caractères " \" par un retour à la ligne. |
| '' ' '' | //Fin de la liste des commandes que ''sed'' devra exécuter.// |
| '' > '' |Rediriger le flux de sortie de la commande ''sed'' ... |
| ''confSyn.sh'' |... vers (création ou écrasement) du fichier ''confSyn.sh''. |
La précédente ligne de commande permet de visualiser un paramètre par ligne.
La suivante aura le même effet mais tous les paramètres seront listés dans une seule ligne de commande.
synclient -l | sed 's/Parameter settings:/synclient/;s/ //g' | sed ':etiquette;N;s/\n/ /;betiquette' >confSyn.sh