Désactiver L'écran Tactile D'un Ordinateur Portable
Les deux derniers laptops (ordinateurs portables) que j’ai achetés ont un écran tactile (touchscreen en anglais). Je n’avais pas forcément besoin de cette fonctionnalité, mais elle est de plus en plus présente sur les configs récentes. De plus en reconditionné on a parfois moins de choix de configs, ce qui a été mon cas.
Bref, je me retrouve avec des écrans tactiles qui ne me servent peu, voire pas du tout, voire s’avèrent génants. En effet, les environnements de bureau tel que Gnome ou d’autres ne sont pas vraiment conçus pour le tactile, de plus, il m’arrive souvent de toucher par inadvertance l'écran et que cela fasse quelque chose de non souhaité.
C’est pour ces raisons que j’ai cherché comment désactiver cette fonctionnalité. Je n’ai rien trouvé dans les paramètres de configuration de l’environnement de bureau que j’utilise, en revanche, il existe un moyen de le faire en ligne de commande de manière assez simple.
Il faut d’abord trouver l’identifiant (id
) du périphérique en question. Pour cela, on utilise la commande suivante :
xinput list
Et on obtient un résultat de ce genre :
Le touchscreen (entouré en rouge), dont le nom de périphérique (device name) est ici “ELAN Touchscreen”, possède donc dans mon cas l'id
10.
Maintenant, pour le désactiver, il me suffit de lancer cette commande :
xinput set-prop 10 'Device Enabled' 0
Voilà, notre écran tactile est désactivé. Mais seulement pour la session courante. Il sera réactivé au redémarrage.
Pour faire qu’il reste désactivé au redémarrage, j’aurais pu faire un service systemd, mais ça m’a saoulé et je ne suis pas bien à l’aise avec cette usine à gaz.
Avec SysVinit on aurait pu mettre la commande dans le rc.local
(qui n’existe plus avec systemd).
J’ai donc opté pour l’utilisation de cron
en utilisant la directive @reboot
qui execute la commande au redémarrage de la machine.
Edit : Comme cela aurait été trop simple, X (je suppose) n’attribue pas toujours le même id
aux périphériques. Il faut donc ruser un peu pour récupérer l'id
avant de lancer la commande pour désactiver l'écran tactile.
J’ai donc écrit un petit script pour faire tout cela :
#!/bin/bash
# disable touchscreen
# touchscreen device name
TDN="ELAN Touchscreen"
TID=$(xinput list --id-only "${TDN}");
# check if Touchscreen Id is an integer
if [[ $TID =~ ^[0-9]+$ ]]; then
# disable touchscreen
xinput set-prop $TID 'Device Enabled' 0
else
echo "Can't get Touchscreen id";
fi;
Script que j’ai sauvegardé sous ~/bin/disable-touchscreen
. N’oubliez pas de rendre le script executable :
chmod u+x ~/bin/disable-touchscreen
Ensuite j’ai édité le fichier /etc/crontab
en y ajoutant cette ligne (remplacez <MON_USERNAME> par le votre bien sûr) :
@reboot root /home/<MON_USERNAME>/bin/disable-touchscreen
Maintenant mon écran tactile est désactivé tout le temps