Я счастливый обладатель сводного монитора, экран которого можно поворачивать (физически). Какой самый простой способ заставить мой дисплей поворачиваться, когда я поворачиваю монитор?
На данный момент я сначала запускаю приложение «Дисплеи», а затем изменяю настройки и подтверждаю. Но на самом деле это довольно трудоемкая процедура, поскольку я хочу переключать свою ориентацию до нескольких раз в минуту.
Так есть индикатор для этого или эквивалент? Могу ли я установить сочетание клавиш, которое будет запускать выделенную команду? На самом деле я думаю о чем-то похожем на программу Windows iRotate .
Войдите в Клавиатуру-> Ярлыки, выберите "Пользовательские Ярлыки" и нажатие "+" для добавления нового ярлыка.
"Имя" является описательным именем для действия (т.е. "Поворачивают монитор"). В типе "Команды" пользовательская команда для выполнения, когда ярлык активируется.
После того как ярлык находится в списке, выберите его строку, нажмите ENTER, затем сочетание клавиш, Вы хотите активировать ярлык. Если будет конфликт, то менеджер по ярлыку скажет Вам так, и можно выбрать другую комбинацию.
У Вас может быть ярлык, чтобы позволить повернутому дисплею и другому возвратить его вертикальному положению. Вы можете даже, если Вы достаточно хорошо осведомлены, запишите команду, которая поддерживает состояние и просто переключается между вертикально/повернул.
Теперь, что касается команды необходимо использовать, это, вероятно, xrandr:
xrandr --output HDMI1 --rotate left
xrandr --output HDMI1 --rotate normal
Выходной параметр зависит, на котором портируют Ваш монитор, включен. Для наблюдения, что Вы в настоящее время имеете введите:
xrandr -q
Мой говорит:
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
1366x768 60.0*+
1360x768 59.8 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
В этом случае мой - вывод был бы LVDS1 как все, что другие разъединяются.
Прекрасно работает с
xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Я написал сценарий оболочки для этого. (Требуется xrandr grep awk)
#!/bin/sh
# invert_screen copyright 20170516 alexx MIT Licence ver 1.0
orientation=$(xrandr -q|grep -v dis|grep connected|awk '{print $4}')
display=$(xrandr -q|grep -v dis|grep connected|awk '{print $1}')
if [ "$orientation" == "inverted" ]; then
xrandr --output $display --rotate normal
else
xrandr --output $display --rotate inverted
fi
Если вам нравятся однострочные:
Вот хороший пример того, как сделать это на основе сенсорного ввода: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu
Так что, в основном, попробуйте выше, чтобы определить экран Вы хотите видеть повернутым. В зависимости от модели монитора может быть датчик, который посылает сигнал?
Это хорошо работает для моего Lenovo Yoga 2 11 со встроенным датчиком вращения и также перемещает док-станцию.
Сценарий:
#!/bin/sh
# 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 '[^ ]+ и обязательное условие для датчиков:
sudo apt install iio-sensor-proxy inotify-tools
)
# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
xrandr --output eDP1 --rotate normal && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
bottom-up)
xrandr --output eDP1 --rotate inverted && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
right-up)
xrandr --output eDP1 --rotate right && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
left-up)
xrandr --output eDP1 --rotate left && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
esac
done
и обязательное условие для датчиков:
sudo apt install iio-sensor-proxy inotify-tools