Автоповорот экрана на Dell 13 7000 с 15.04 (Gnome)
Gnome, кажется, очень подходит для устройств с сенсорным экраном, есть ли способ автоматического поворота экрана, когда я переворачиваю ноутбук / планшет?
4 ответа
Сообщалось, что это программное обеспечение работает на многих устройствах 2-в-1. Но вы должны запустить последнее ядро и гном.
Изменить: Я знаю, что это не отвечает на ваш вопрос напрямую, так как у нас разные компьютеры, и вы заинтересованы в Gnome, но я хотел опубликовать это где-нибудь, чтобы помочь другим.
Следующее сработало для меня для Ubuntu 16.10 (Unity) на Spectre x360 (Kaby Lake). Я подозреваю, что подобное лечение должно работать для других ноутбуков.
Как и в ответе @Yalokly, установите iio-sensor-proxy
:
sudo apt-get install iio-sensor-proxy
Это может быть червь, чтобы получить работу. Вы знаете, что это работает, если при запуске monitor-sensor
вещи происходят, когда вы поворачиваете свое устройство. Здесь вы можете найти информацию об устранении неполадок. У меня были некоторые проблемы с этим. Обновление моего ядра с 4.8 до 4.10 работало для меня. Поиск учебника онлайн. Как и многие другие, у меня есть ошибка, когда сенсорный мониторинг работает только после того, как компьютер был приостановлен - хотя бы один раз возобновлен.
Unity не выполняет функции автоповорота и режима планшета самостоятельно. Я соединил скрипты отсюда и вот так, чтобы:
- Экран поворачивается автоматически
- Клавиатура и трекпад работают только тогда, когда ноутбук нормально ориентирован; отключен в трех других направлениях
- Unity Launcher расположен внизу для портретной ориентации и оставлен для альбомной ориентации
onboard
Программа запускается в трех ориентациях "планшета" и убивается из-за ориентации "ноутбука" (дополнительно: мне показалось полезным включить автоматическое всплывающее окно в текстовом режиме в настройках на борту)
Вот сценарий:
#!/bin/sh
# IH: this script is taken from a combo of:
# https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu
# https://Ask-ubuntu.ru/questions/757900/hp-spectre-x360-disable-touchpad-in-tablet-mode-ubuntu-15-10
# Auto rotate screen based on device orientation
# Receives input from monitor-sensor (part of iio-sensor-proxy package)
# Screen orientation and launcher location is set based upon accelerometer position
# Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
# This script should be added to startup applications for the user
# Clear sensor.log so it doesn't get too long over time
> sensor.log
# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> sensor.log 2>&1 &
# Parse output or monitor sensor to get the new orientation whenever the log file is updated
# Possibles are: normal, bottom-up, right-up, left-up
# Light data will be ignored
while inotifywait -e modify sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')
# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
xrandr --output eDP-1 --rotate normal
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 1 #Enable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 1 #Enable Pad
killall onboard
;;
bottom-up)
xrandr --output eDP-1 --rotate inverted
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
right-up)
xrandr --output eDP-1 --rotate right
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
left-up)
xrandr --output eDP-1 --rotate left
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
esac
done
Примечание: мой экран называется eDP-1
твой можно назвать чем-то другим. Бежать xrandr
чтобы узнать имя и изменить четыре экземпляра в приведенном выше сценарии.
Сохраните это где-нибудь как auto-rotate.sh
сделать его исполняемым (chmod a+x auto-rotate.sh
) и добавьте его в Startup Applications.
Я использовал код @Ian Hincks, но у меня есть небольшое предложение сделать это полезным. У меня Dell Inspiron 13 серии 7000, и в этом аппарате есть датчик освещенности для балансировки яркости подсветки. Мне пришлось изменить построение линии "ориентации", потому что изменения датчика освещенности приводят к быстрым изменениям и загрязняют захваченную ориентацию. Затем я получаю три световых изменения одной линией ориентации. Если я фиксирую только одну строку журнала, я теряю линию ориентации. Вот почему я увеличил захват журнала до 4 строк и изменил регулярное выражение grep для захвата последней ориентации. Тогда новая строка ORIENTATION будет:
ORIENTATION=$(tail -n 4 sensor.log | grep 'orientation' | grep -oEm 1 '[^ ]+$')
Спасибо @Ian Hincks за твой код!
я использую автоповорот
Он может вращать экран и дигитайзер вручную или автоматически. У демона systemd есть возможность запускать его в фоновом режиме.