Touchpad Synaptic (script pour activer-désactiver)

Demandez et postez vos petites astuces, répertoire des tutoriels et astuces
melissa6969
Messages : 485
Enregistré le : lun. 24 oct. 2016 22:30

Touchpad Synaptic (script pour activer-désactiver)

Message par melissa6969 » sam. 6 janv. 2018 17:11

Bonjour à tous.

si un tel sujet existe déjà ou que la section est pas bonne, merci aux modos de m'y signaler.

une petite astuce qui se veut être une alternative au logiciel Touchpad-Indicator.
je ne sais pas si je suis la seule, mais touchpad-indicator a tendance à ne pas fonctionner correctement, quand on passe beaucoup de temps à jongler entre le touchpad et la souris notamment, au bout d'un moment, touchpad-indicator ne bloque plus le touchpad malgré le branchement de la souris (en tout cas sur mon pc)

du coup pour ceux qui auraient un ou des problèmes, je vous propose un script (je l'avoue, ce n'est pas moi qui l'ai fait, je l'ai récupéré sur le forum anglais de ArchLinux, c'est le seul script chez moi qui fonctionne de façon optimale, et j'en ai essayé des dizaines pourtant)

pour commencer on ouvre notre éditeur de texte favori, et on copie colle ceci dedans

Code : Tout sélectionner

#!/bin/bash

## Get the touchpad id. The -P means perl regular expressions (for \K)
## the -i makes it case insensitive (better portability) and the -o
## means print only the matched portion. The \K discards anything matched
## before it so this command will print the numeric id only.
TID=$(xinput list | grep -iPo 'touchpad.*id=\K\d+')

if [ -s "$TID" ] ; then
    echo "Touchpad not found"
    exit 1
fi

list=`xinput --list | grep -i mouse`

if [ ${#list} -eq 0 ]; then
    xinput enable "$TID"
else
    xinput disable "$TID"
fi

udevadm monitor -k -s input | while read line ; do

    if grep -q -E "KERNEL.*add.*mouse" <<< "$line" ; then

        xinput disable "$TID"
        notify-send "TOUCHPAD  DÉSACTIVÉ" "Souris Branchée"

    elif grep -q -E "KERNEL.*remove.*mouse" <<< "$line" ; then

        xinput enable "$TID"
        notify-send "TOUCHPAD  ACTIVÉ" "Souris Débranchée"
    fi

done
ce script vérifie via la commande xinput, si une souris est détectée donc branchée, si oui, le touchpad est désactivé, si on débranche la souris, le touchpad se réactive tout seul.

ensuite une fois la syntaxe copié dans l'éditeur de texte, on l'enregistre sous le nom
.touchpad.sh
le .sh est obligatoire, c'est l'extension du script shell qui permet de faire fonctionner évidemment notre script.
ça donne ceci (encadré rouge pour le nom donné)
Touchpad_10.png
notre script est enregistré dans notre /home, on ne le voit pas, puisqu'on l'a nommé avec un point devant, pour qu'il soit un fichier caché, donc on va dans notre gestionnaire de fichiers, on fait CTRL + h et les fichiers cachés apparaissent ainsi que notre script, comme sur ma capture, encadré en rouge.
Touchpad_11.png
ensuite on va dans les paramètres système, et au va dans la section
application au démarrage
on clique sur ajouter
ensuite sur commande personnalisée
comme sur ma capture, encadré en rouge
Touchpad_12.png
ensuite on rempli les champs demandés, comme sur ma capture
Touchpad_13.png
pour la case COMMANDE, on choisit notre script précédemment créer, donc on fait ainsi
- on clique sur parcourir
- ensuite sur dossier personnel chiffre 1 et encadré rouge sur ma capture d'écran
- ensuite on fait un clic droit et on choisit ""afficher les fichiers cachés"" chiffre 2 et encadré rouge sur ma capture d'écran
Touchpad_14.png
- et pour finir on double clique sur notre fichier ""touchpad.sh"" encadré rouge sur ma capture
Touchpad_15.png
et on enregistre le tout, encadré en rouge sur ma capture
Touchpad_16.png
il reste plus qu'à tout fermer.
si vous utilisez touchpad-indicator, pensez à le désactiver des programmes au démarrage avant de faire les tests pour le script.
si vous utilisez pas touchpad-indicator bah vous avez pas besoin de le désactiver hein

il vous reste plus qu'à redémarrer le pc et le script se lancera en arrière-plan automatiquement, et sera fonctionnel.
pour vous en convaincre, suffit de débrancher la souris et vérifier que le touchpad fonctionne.
brancher la souris, et vérifier que le touchpad est bien inactif.
pensez à bien laisser activé le touchpad dans les paramètres du système, dans la catégorie souris et pavé tactile
si il est désactivé dans les paramètres, le script ne pourra pas l'activer de lui-même.

j'ai effectué divers tests, plusieurs boots, reboots, déconnexion de la session, mise en veille du pc, le script est tout le temps fonctionnel, si je branche ou débranche la souris, le pavé tactile s'active ou se désactive comme prévu, pas de bugs, pas de crashs, ça fait maintenant deux semaines que je m'en sers, et tout va bien.

j'ai effectué ces tests sur ma ArchLinux Cinnamon et sur ma Debian Sid Cinnamon, donc pour les autres environnements, je ne peux pas garantir que ça soit fonctionnel, mais en théorie, il n'y a pas de raison, puisque ça agit directement sur xinput.
le script fonctionne uniquement avec les touchpads de marque Synaptic


si les experts du forum suggèrent un changement pour une amélioration du script, je suis preneuse
n'hésitez pas à me faire part de vos retours
Modifié en dernier par débitant le mer. 7 mars 2018 14:22, modifié 2 fois.

melissa6969
Messages : 485
Enregistré le : lun. 24 oct. 2016 22:30

Re: Script pour activer, désactiver le touchpad

Message par melissa6969 » ven. 19 janv. 2018 14:26

EDIT Du 19 Janvier 2018
modif du script


ajout des notifications lors du branchement débranchement de la souris, grâce à ces 2 variables

Code : Tout sélectionner

notify-send "TOUCHPAD  DÉSACTIVÉ" "Souris Branchée"
        notify-send "TOUCHPAD  ACTIVÉ" "Souris Débranchée"
le texte de la notif peut être modifier à volonté et selon votre guise, ne surtout pas oublier de mettre les guillemets pour le texte, sinon les notif ne fonctionneront pas.

et modification du script pour permettre son exécution directement au sein du kernel toujours avec xinput comme système de surveillance à chaud d'un branchement ou débranchement de souris..

et modification pour permettre au touchpad d'être désactivé quand une souris est déjà branchée lors du démarrage du pc..

lors de l'utilisation du script bien penser à désactiver le logiciel touchpad-indicator, sinon il y aura conflit entre les 2

Avatar du membre
david37
modérateur
Messages : 3103
Enregistré le : lun. 22 août 2016 05:06

Re: Script pour activer, désactiver le touchpad

Message par david37 » mar. 6 mars 2018 23:23

Merci pour l'astuce ;)
PC1: Hp pavilion g6 / 1.36 GHz AMD E2-1800 APU with Radeon(tm) HD Graphics / 500 GB hard drive / 4G RAM /
Debian 9.9 Xfce
PC2: Hp-Pavilion Slimline / 2.5 GHz AMD RV710 / 4GB RAM / 500 GB hard drive / LM 18.3 Xfce x64
PC3: Lenovo ThinkPad R61i / 1.87 GHz Intel T2390 / NVIDIA G86M / 2GB RAM / 100 GB Hard Drive / LMDE2-Mate x64
PC4: Dell-Latitude E7240 / 2GHz i5-4310U / Intel Haswell-ULT HD 4400 / 8GB RAM / 500 GB Hard Drive / LM 19.1 Xfce x64

capdeframint
Messages : 982
Enregistré le : jeu. 2 juin 2016 08:57

Re: Toucpad Synaptic (script pour activer-désactiver)

Message par capdeframint » jeu. 8 mars 2018 20:42

Très beau travail mais pourquoi veux tu absolument désactiver le Touchpad lorsque tu branches une souris ? J'utilise très souvent mon portable avec une souris et je passe du Touchpad à la souris indifféremment et ça ne pose aucun problème de fonctionnement.
PC1: ordi tour Packard Bell iXtreme M5140, proc AMD Phenom II 1035TX6,Ram12 Go,1 SSD de 250 Go+1 disque HDD de 1 To.Carte Video NVidia. LMDE3 XFCE
Double boot: Windows 10 Family (en totalité sur le SSD) + LMDE3 XFCE (/ sur le SSD et Home sur le HDD)
PC2:portable HP Pavilion DV7-3125ef, proc Intel i3, Ram8 Go, 1 SSD de 240 Go+ 1 disque HDD de 640 Go.Carte video NVidia GT218M, LM19.2 Cinnamon
Double boot: Windows 10 Pro (sur le SSD) et LM19.2 (/ sur le SSD et Home sur le HDD).

melissa6969
Messages : 485
Enregistré le : lun. 24 oct. 2016 22:30

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par melissa6969 » jeu. 8 mars 2018 22:03

parce que je me sers jamais du touchpad quand je suis chez moi, et quand le chat va sur mon pc pour se tenir au chaud, alors si je laisse le touchpad en route, je t'explique pas les conneries involontaires qu'il ferait ;)

et quand je suis en déplacement, notamment en train avec mon pc, j'utilise que le touchpad, et une fois arrivée chez les clients, je rebranche la souris, et ça désactive le touchpad directement.
c'est une vieille habitude que j'avais sur w8.1, c'est peut-être pas la meilleure ""technique"" du monde mais elle me convient parfaitement vu que je suis pas très habile avec le touchpad (ça m'agace vite, je préfère la bonne vieille souris) :D

paul74
Messages : 2
Enregistré le : dim. 31 déc. 2017 18:43
Localisation : Haute-Svoie

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par paul74 » jeu. 7 mars 2019 09:39

Bonjour et merci à Melissa,

Perso, je n'utilise pas le touchpad du tout, et j'en ai marre que ce "machin" me pollue les entrées au clavier si mon poignet l'effleure.

Avatar du membre
cyrille
Messages : 2931
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nord - Avesnois
Contact :

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par cyrille » jeu. 7 mars 2019 10:03

Sinon , encore plus simple :

Code : Tout sélectionner

xinput 
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint Stick           	id=14	[slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse              	id=11	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad        	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)]
    ↳ Laptop_Integrated_Webcam_3M             	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=15	[slave  keyboard (3)]
On repère le touchpad avec un id de 13.

Pour le desactiver :

Code : Tout sélectionner

 xinput --set-prop 13 "Device Enabled" 0
Pour le réactiver

Code : Tout sélectionner

 xinput --set-prop 13 "Device Enabled" 1
Attention avec l'utilisation de : libnotify-bin dans un script
Pas installé par défaut donc il faudrait que ton script teste en premier la présence ou non de ce paquet

Code : Tout sélectionner

if which libnotify-bin > /dev/null; then
    echo "Libnotify already install. Fine."
else
    echo "Package libnotify-bin not installed. Go for the installation"
    su -c "apt-get install libnotify-bin"
fi

++C
# Me : DELL Lat E5430, SSD, 64-bit, RAM 8Go [ FreeBSD 12.0, xfce / Openbox ; DEBIAN SID via VirtualBox] | E7440, SSD, amd64, RAM 8Go [ DEBIAN SID, xfce]
# Me : VPS : 1 vCore 2 GHz , SSD, RAM 2Go, Local RAID, DEBIAN STABLE https://cbiot.fr
# Work : Serveur HP ProLiant ML 310e Gen 8 v2, DEBIAN STABLE | Parc DELL Lat E6* LINUX MINT, 18.3 Sylvia, amd64, XFCE.

All you need : #!/bin/bash | SVP les chiants pas de MP...

Avatar du membre
cyrille
Messages : 2931
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nord - Avesnois
Contact :

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par cyrille » jeu. 7 mars 2019 10:18

le .sh est obligatoire, c'est l'extension du script shell qui permet de faire fonctionner évidemment notre script.
Pas tout à fait d'accord
Sous linux les extensions ne sont pas obligatoires

Ce qui va rendre ton script executable c'est la première ligne

Code : Tout sélectionner

#/bin/sh
Qui va appeler bash

Même le fait de le passer en executable n'est pas obligatoire. Dans ce cas, tu l'appelles avec la commande sh
Le fait de le passer en executable te permettra un appel depuis le path

Exemple
Crée un fichier

Code : Tout sélectionner

nano test
#/bin/sh
echo "hello"
Pas d'extension et pas exécutable par défaut.
Pourtant

Code : Tout sélectionner

$ sh test
hello
Te montre que ça passe

Si tu le rends exécutable, tu n'as plus besoin d'invoquer sh

Code : Tout sélectionner

$ chmod +x test
$ ./test
hello
Et pourtant toujours pas d'extension

Et même si tu colles une extension qui n'est pas bonne, il reste interprêté par bash et non firefox...

Code : Tout sélectionner

 mv test test.html
 ./test.html 
hello
Ce n'est pas une critique, juste une précision. Bon développement shell ;)
# Me : DELL Lat E5430, SSD, 64-bit, RAM 8Go [ FreeBSD 12.0, xfce / Openbox ; DEBIAN SID via VirtualBox] | E7440, SSD, amd64, RAM 8Go [ DEBIAN SID, xfce]
# Me : VPS : 1 vCore 2 GHz , SSD, RAM 2Go, Local RAID, DEBIAN STABLE https://cbiot.fr
# Work : Serveur HP ProLiant ML 310e Gen 8 v2, DEBIAN STABLE | Parc DELL Lat E6* LINUX MINT, 18.3 Sylvia, amd64, XFCE.

All you need : #!/bin/bash | SVP les chiants pas de MP...

Avatar du membre
cyrille
Messages : 2931
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nord - Avesnois
Contact :

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par cyrille » jeu. 7 mars 2019 11:00

Intéressant comme sujet, allez une solution en une seule ligne.
(à coller sur 2 alias par exemple)

Desactiver le touchpad

Code : Tout sélectionner

  xinput --set-prop `xinput | sed -nr 's/.*TouchPad.*id=([0-9]*).*/\1/p'`  "Device Enabled" 0
Activer le touchpad

Code : Tout sélectionner

  xinput --set-prop `xinput | sed -nr 's/.*TouchPad.*id=([0-9]*).*/\1/p'`  "Device Enabled" 1
# Me : DELL Lat E5430, SSD, 64-bit, RAM 8Go [ FreeBSD 12.0, xfce / Openbox ; DEBIAN SID via VirtualBox] | E7440, SSD, amd64, RAM 8Go [ DEBIAN SID, xfce]
# Me : VPS : 1 vCore 2 GHz , SSD, RAM 2Go, Local RAID, DEBIAN STABLE https://cbiot.fr
# Work : Serveur HP ProLiant ML 310e Gen 8 v2, DEBIAN STABLE | Parc DELL Lat E6* LINUX MINT, 18.3 Sylvia, amd64, XFCE.

All you need : #!/bin/bash | SVP les chiants pas de MP...

Avatar du membre
zeb
Administrateur du site
Messages : 14687
Enregistré le : ven. 19 juin 2015 22:13
Localisation : Au pays du mistral

Re: Touchpad Synaptic (script pour activer-désactiver)

Message par zeb » jeu. 7 mars 2019 18:16

paul74 a écrit :
jeu. 7 mars 2019 09:39
Bonjour et merci à Melissa,

Perso, je n'utilise pas le touchpad du tout, et j'en ai marre que ce "machin" me pollue les entrées au clavier si mon poignet l'effleure.
:l un an plus tard, on travaille dans le TP ? :mrgreen:

Merci cyrille pour les tuyaux ;)
A lire absolument avant de poster sur le forum (et pas que le titre...)
Le RTFM des forums Linux
Merci !

Répondre