web-dev-qa-db-fra.com

Comment créer un script pour écran tactile à exécuter après la reprise?

J'utilise Ubuntu 16.04 LTS sur mon ASUS TP200SA, un ordinateur portable 2 en 1. J'ai récemment remarqué un bogue concernant l'écran tactile. Chaque fois que je mets le système en veille et le réveille, l'écran tactile ne fonctionne pas. Comme je suis assez nouveau sur Linux, je n'ai pu résoudre ce problème qu'en tapant ...

xinput disable (my touchscreen)
xinput enable (my touchscreen)

... ceux-ci au terminal. Au bout d’un moment, cela devient vraiment épuisant et je cherche un moyen d’automatiser ce processus dans chaque CV. J'ai effectué des recherches sur le Web et trouvé un tutoriel pour le faire, mais je n'ai rien obtenu du fait que mon expérience de Linux est extrêmement faible. J'espère que quelqu'un pourra expliquer comment faire cela d'une manière très simple.

Je vous remercie!

2
Mustafa Onur

J'ai le même ordinateur portable et je viens de pouvoir le réparer de cette façon.

D'abord, j'ai créé un script

Sudo nano /usr/local/bin/reload_touchscreen.sh

Avec ce code:

#!/bin/bash
export DISPLAY=:0.0
export XAUTHORITY=/home/username/.Xauthority
sleep 5s
xinput disable "SIS0457:00 0457:1136"
xinput enable "SIS0457:00 0457:1136"

Vous devez modifier "/home/username/.Xauthority" pour qu'il corresponde à votre propre nom d'utilisateur. J'ai également trouvé le nom de mon écran tactile à l'aide de "xinput list". Mettez-le à jour également ou utilisez l'identifiant numérique. Je mets une pause de 5 secondes pour avoir le temps de me reconnecter au bureau, juste au cas où. Assurez-vous de rendre ce fichier exécutable:

chmod +x /usr/local/bin/reload_touchscreen.sh

Ensuite, créez un service systemd, avec ceci:

Sudo nano /etc/systemd/system/reload_touchscreen.service

Avec ce contenu:

[Unit]
Description=Reload touchscreen
After=suspend.target
#After=hibernate.target
#After=hybrid-sleep.target

[Service]
ExecStart=/usr/local/bin/reload_touchscreen.sh

[Install]
WantedBy=suspend.target
#WantedBy=hibernate.target
#WantedBy=hybrid-sleep.target

Je ne sais pas si c'est nécessaire, mais j'ai également rendu le fichier de service exécutable.

Activez ensuite le service avec ceci:

systemctl enable reload_touchscreen.service

J'espère que cela fonctionne pour vous! PS: J'ai installé le noyau principal 4.10 sur mon ordinateur portable et maintenant les touches de luminosité fonctionnent également. Je pense que Ubuntu 17.04 fonctionnera très bien sur cet ordinateur portable.

1
UrkoM