Por que meu script de login é executado apenas parcialmente?

5

Instalei o Lubuntu 16.04 Xenial em um tablet. Por padrão, a tela é orientada para os lados (como um Kindle ou Nook), e o tablet não tem acelerômetros para detectar automaticamente quando eu girar o dispositivo. Isso não importa muito, pois sempre usarei o tablet como um "monitor", isto é, girado 90 ° a partir de sua orientação original (estilo Kindle / Nook).

Eu escrevi um script para executar a rotação no login, mas por algum motivo, ele está realizando a rotação da tela, mas não a entrada da tela sensível ao toque.

Eu pensei que talvez fosse por causa da entrada touchscreen não estar totalmente inicializada quando o comando xinput é chamado, porque eu posso executar o script manualmente após o boot e ele funciona muito bem. Expliquei isso no script, para que o comando xinput espere até que a entrada da tela sensível ao toque seja inicializada, mas ainda vejo os mesmos resultados.

Aqui está o 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'

Nota: Existem dois dispositivos com quase exatamente o mesmo nome sob a lista de entrada de dados - a entrada da tela de toque e um ponteiro da caneta (que não serão usados). O dispositivo ELAN22A6: 00 04F3: 22A6 é a entrada da tela sensível ao toque.

Além disso, isso pode ou não ser relevante, mas também estou executando gnome-shell além do Lubuntu, que também é programado para iniciar no login (porque não quer como o gerenciador de desktop padrão).

O que estou perdendo aqui?

    
por Dean Rusmor 13.04.2017 / 23:45

1 resposta

3

Parece que você está perdendo backticks. Tente mudar:

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

para

while [ -z "'xinput | grep -v 'Pen' | grep 'ELAN''" ]
    
por d99kris 02.05.2017 / 16:55