web-dev-qa-db-fra.com

Programme pour activer et désactiver le pavé tactile

J'ai un ThinkPad Edge E520 et j'utilise Ubuntu 14.04 LTS.

Je voudrais avoir un fichier exécutable sur mon bureau qui puisse facilement allumer ou éteindre mon TouchPad et TrackPoint:

xinput list
...
⎜   ↳ TPPS/2 IBM TrackPoint                     id=15   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]

Grâce à mes propres recherches, j'ai créé deux fichiers, l'un pour l'activer et l'autre pour le désactiver. Je ne peux pas, cependant, comprendre comment combiner ces deux programmes en un seul programme pour désactiver ces entrées si elles sont activées, et vice versa. J'ai joué avec les instructions if, mais je ne peux que faire en sorte que le programme active toujours les entrées ou les désactive toujours.

Voici mon programme pour activer les entrées:

xinput set-prop 15 "Device Enabled" 1
xinput set-prop 13 "Device Enabled" 1

et l'autre pour les désactiver:

xinput set-prop 15 "Device Enabled" 0
xinput set-prop 13 "Device Enabled" 0  

Quelqu'un pourrait-il m'aider à les combiner en un seul programme?

Merci d'avance :)

2
Pattysal

J'utilise une autre approche pour basculer l'état du pavé tactile: synclient. Vous pouvez également utiliser vos commandes xinput, mais je préfère synclient.

J'utilise le script suivant, attribué à un raccourci clavier, pour activer/désactiver mon pavé tactile:

#!/bin/bash
if [ -z "$(synclient | grep TouchpadOff | grep 1)" ]; then
    synclient TouchpadOff=1
else
    synclient TouchpadOff=0
fi

Comment ça marche?

Lors de l'exécution de synclient sans aucun argument, il renvoie une liste de tous les paramètres et de leur état actuel. Dans cette liste, le script récupère l'option "TouchpadOff", qui est - qui l'aurait deviné - 1 si le pavé tactile est éteint et 0 sinon.

Pour vérifier cela, j'ai utilisé le test de -z switch (la chaîne suivante est vide), combiné avec un autre grep, qui est évalué à true, si le pavé tactile est éteint. Dans ce cas, il appelle à nouveau synclient avec un argument lui indiquant de définir l'option sur "1", désactivant ainsi le pavé tactile.

Sinon, le script fait le contraire et réactive le pavé tactile.


Notez que le synclient ne stocke pas les paramètres de façon permanente, donc si vous ne faites rien d'autre, votre toucpad sera toujours activé au démarrage.

3
s3lph

J'utilise ce script pour changer l'état du pavé tactile.

#!/bin/bash
id=$(xinput | grep -i "TouchPad" | cut -f 2 | cut -d= -f 2)
status=$(xinput --list-props $id | grep "Device Enabled" | cut -f 3)
if [ $status -eq 1 ]; then
    xinput --disable $id
else
    xinput --enable $id
fi
1
yanqian

Merci Seppi!

Votre script a parfaitement fonctionné. J'ai ajouté une de mes lignes d'origine pour activer/désactiver également le TrackPoint.

if [ -z "$(synclient | grep TouchpadOff | grep 1)" ]; then
    synclient TouchpadOff=1
    xinput set-prop 15 "Device Enabled" 0
else
    synclient TouchpadOff=0
    xinput set-prop 15 "Device Enabled" 1
fi
0
Pattysal

J'ai fait un petit script que vous pouvez essayer. Exécutez-le deux fois depuis le terminal pour voir s'il peut désactiver et réactiver le périphérique 15. Si cela fonctionne, je le modifierai en 13. Test

0
TheWanderer