Я установил Lubuntu 16.04 Xenial на планшет. По умолчанию экран ориентирован боком (например, Kindle или Nook), и на планшете нет акселерометров для автоматического обнаружения при повороте устройства. Это не имеет большого значения, поскольку я всегда буду использовать планшет как «монитор», то есть повернутый на 90 ° от его первоначальной ориентации (Kindle / Nook style).
Я написал сценарий для выполнения вращения при входе в систему, но по какой-то причине он выполняет поворот экрана дисплея, но не вход в сенсорный экран.
Я думал, что это возможно из-за того, что вход в сенсорный экран не полностью инициализируется при вызове команды xinput, потому что я могу выполнить скрипт вручную после загрузки, и он работает нормально. Я учитывал это в сценарии, так что команда xinput ожидает, пока вход сенсорного экрана не будет инициализирован, но я все еще вижу те же результаты.
Вот сценарий:
#!/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'
Примечание. В списке xinput есть два устройства с почти одинаковым именем - сенсорный вход и указатель пера (который не будет использоваться). Устройство not - это сенсорный вход.
Кроме того, это может быть или не быть релевантным, но я также запускаю gnome-shell поверх Lubuntu, который также скрипт для запуска при входе в систему (потому что я не хочу, чтобы он был менеджером рабочего стола по умолчанию).
Что мне здесь не хватает?
Похоже, что вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, что вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, что вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, что вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
Похоже, вам не хватает backticks. Попробуйте изменить:
while [ -z "xinput | grep -v 'Pen' | grep 'ELAN'" ]
на
while [ -z "`xinput | grep -v 'Pen' | grep 'ELAN'`" ]
while
, и когда это не сработало, я добавил цикл, потому что я думал, что системе нужно ждать ввода для инициализации в первую очередь.
– Dean Rusmor
3 May 2017 в 01:27
while [ -z "`pidof gnome-shell`" ]; do sleep 1; done
в строке перед вашим существующим while-loop. Не могу сказать уверенно, что это сработает, но, вероятно, стоит попробовать.
– d99kris
3 May 2017 в 18:37
gnome-shell
, потому что моим окончательным решением стал отдельный сценарий bash, в котором я просто грубо принудительно применяю преобразование, но я должен сначала спать на 5-10 секунд, пока gnome-shell
загружается.
– Dean Rusmor
11 May 2017 в 23:31