web-dev-qa-db-fra.com

Pourquoi mon script de connexion ne s'exécute-t-il que partiellement?

J'ai installé Lubuntu 16.04 Xenial sur une tablette. Par défaut, l'écran est orienté latéralement (comme un Kindle ou un Nook), et la tablette n'a pas d'accéléromètres pour détecter automatiquement lorsque je tourne l'appareil. Cela n'a pas beaucoup d'importance, car j'utiliserai toujours la tablette comme un `` moniteur '', c'est-à-dire une rotation de 90 ° par rapport à son orientation d'origine (style Kindle/Nook).

J'ai écrit un script pour effectuer la rotation lors de la connexion, mais pour une raison quelconque, il effectue la rotation de l'écran d'affichage, mais pas l'entrée de l'écran tactile.

Je pensais que c'était peut-être parce que l'entrée de l'écran tactile n'était pas complètement initialisée lorsque la commande xinput est appelée, car je peux exécuter le script manuellement après le démarrage et cela fonctionne très bien. J'ai pris cela en compte dans le script, de sorte que la commande xinput attend que l'initialisation de l'écran tactile soit initialisée, mais je vois toujours les mêmes résultats.

Voici le script:

#!/bin/bash
sleep 3
xrandr -o right &
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
do
    sleep 1
done
xinput set-prop 'ELAN22A6:00 04F3:22A6' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
xinput disable 'ASUS HID Device ASUS HID Device Touchpad'

Remarque: Il y a deux appareils avec presque exactement le même nom dans la liste xinput - l'entrée de l'écran tactile et un pointeur de stylet (qui ne seront pas utilisés). L'appareil ELAN22A6: 00 04F3: 22A6 est l'entrée de l'écran tactile.

En outre, cela peut être pertinent ou non, mais j'exécute gnome-Shell sur Lubuntu également, qui est également scripté pour démarrer à la connexion (car je ne le veux pas comme le gestionnaire de bureau par défaut).

Qu'est-ce que j'oublie ici?

4
Dean Rusmor

Il semble que vous manquiez de backticks. Essayez de changer:

while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]

à

while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
3
d99kris