Изменение способа работы автоматического поворота экрана в оболочке Gnome

Изменение способа работы автоматического поворота экрана в оболочке Gnome

Недавно я приобрел ноутбук-трансформер Lenovo Yoga 3 11". Он отлично работает с Ubuntu Gnome LTS 16.04.2 прямо из коробки — WiFi, Bluetooth, даже приостановка и возобновление работы выполняются без каких-либо проблем.

Я заметил, что Gnome 3 даже позволяет экрану автоматически поворачиваться на основе встроенных датчиков вращения. Yoga 3 11" предлагает датчики вращения, iio-sensor-proxyкоторые уже установлены по умолчанию в Ubuntu Gnome. Как оказалось, ориентация, сообщаемая, iio-sensor-proxyкажется, смещена на 90°.

Автоматический поворот экрана на Dell 13 7000 с 15.04 (Gnome)есть решение в виде пользовательского скрипта оболочки, который обрабатывает поворот экрана. Я бы предпочел не использовать это решение, так как оно отключает кнопку «отключить поворот экрана» в Gnome Shell.

Я уже провел некоторые исследования и обнаружил, что это iio-sensor-proxyдолжно udevвызвать событие, которое затем используется Gnome 3 для установки ориентации экрана через xrandr. Однако я не могу найти способ сообщить udevили Gnome 3, что акселерометр установлен в ориентации, отличной от ориентации дисплея, что требует перевода направлений между ними.

Итак, вопрос: как это можно сделать? Переназначение ориентации должно быть возможно либо в iio-sensor-proxy, udevлибо в Gnome 3, и мне на самом деле все равно, где это делается. Кажется, я не нашел никаких конфигурационных файлов, которые я мог бы легко изменить, чтобы добиться того, что мне нужно.

В качестве обходного пути на данный момент я использую скрипт из вопроса Ask ubuntu, ссылка на который приведена выше, с изменениями для учета проблемы с невыровненным дисплеем/акселерометром. Чтобы это сработало, мне нужно отключить автоматический поворот экрана в Gnome 3. Хотя это решение также позволяет автоматически запускать и убивать onboard(экранную клавиатуру) в зависимости от текущей ориентации, оно как бы сводит на нет смысл настройки поворота экрана Gnome 3.

решение1

Теорию смотрите в ответе Кшиштофа Стасяка.

На практике мой компьютер — One Mix One Netbook 2S — по умолчанию имеет экран, повернутый на 90 градусов против часовой стрелки.

Насколько я понимаю, по умолчанию - каждая машина, у которой нет переопределений, имеет матрицу ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1

В моем случае исправление произошло после добавления следующего кода в файл /etc/udev/hwdb.d/60-sensor.hwdb:

sensor:modalias:*
  ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

решение2

ОтGitLab iio-sensor-proxy сайт Если акселерометр установлен не так же, как экран, нам необходимо изменить показания акселерометра, чтобы убедиться, что вычисленная ориентация соответствует ориентации экрана.

iio-sensor-proxyсчитывает эту информацию из свойства udev устройства ACCEL_MOUNT_MATRIX. 60-sensor.hwdbПодробности см.

Связанный контент