У нас есть устройства с сенсорными экранами, которые мы откалибровать с помощью xinput_calibrator, а затем применить настройки стартового скрипта для нашего приложения, вдоль линийXInput Калибровка экрана Противоречивые
xinput set-int-prop "Microchip Technology Inc. AR1100 HID-MOUSE" "Evdev Axis Calibration" 32 109 3841 161 3973
xinput set-int-prop "Microchip Technology Inc. AR1100 HID-MOUSE" "Evdev Axes Swap" 8 1
xinput set-int-prop "Microchip Technology Inc. AR1100 HID-MOUSE" "Evdev Axis Calibration" 32 3852 112 3970 159
Это хорошо работает - иногда. В другое время, после силового цикла, калибровка не вступает в силу - оси, в частности, меняются местами, и масштабирование кажется выключенным, хотя это сложнее сказать. Пара более сильных циклов, и она снова будет работать, а затем нет.
Мы новичок в X11 и не знаем, почему это происходит. Как будто наши операторы xinput обрабатываются иногда и игнорируются в других случаях, хотя ничего не изменилось, кроме перезагрузки.
Любые мысли о том, как обращаться с этим, оцениваются.
Как работает ваш скрипт (при запуске или вручную, до или после запуска сервера X11)? При перезагрузках, где калибровка/своп не были применены, помогает ли снова запустить сценарий? Нужен ли полный перезапуск, или, возможно, повторный запуск сценария и перезапуск сервера X11? –
Сценарий запускается во время init, явно после запуска x-сервера. Я не пробовал запустить скрипт во второй раз; это во встроенной системе, и очень сложно остановить наше приложение, чтобы возобновить его, поскольку все настроено на запуск автоматически, один раз, при загрузке. – SixDegrees
Ну, вы могли бы добавить «sleep 60» в свой скрипт, чтобы убедиться, что все оседает, прежде чем запускать его. Вы также можете запустить строку «Axes Swap» дважды (с небольшим интервалом) для учета случаев, когда команда не принимается во внимание в первый раз. Наконец, вы можете зарегистрировать вывод 'xinput -list -long' и конец вашего скрипта и сравнить журналы, соответствующие успешным и неудачным конфигурациям. –