Как я могу повернуть мой дисплей самым простым способом?

54

Я счастливый обладатель сводного монитора, экран которого можно поворачивать (физически). Какой самый простой способ заставить мой дисплей поворачиваться, когда я поворачиваю монитор?

На данный момент я сначала запускаю приложение «Дисплеи», а затем меняю настройки и подтверждаю. Но на самом деле это довольно трудоемкая процедура, поскольку я хочу переключать свою ориентацию до нескольких раз в минуту.

Так есть индикатор для этого или эквивалент? Могу ли я установить сочетание клавиш, которое будет запускать выделенную команду? На самом деле я думаю о чем-то похожем на программу Windows iRotate .

Agmenor
источник

Ответы:

94

Зайдите в Keyboard -> Shortcuts, выберите «Custom Shortcuts» и нажмите «+», чтобы добавить новый ярлык.

«Имя» - это описательное имя для действия (например, «Повернуть монитор»). В поле «Команда» введите пользовательскую команду, запускаемую при активном ярлыке.

Как только ярлык окажется в списке, выберите его строку, нажмите клавишу ВВОД, а затем комбинацию клавиш, для которой вы хотите активировать ярлык. В случае конфликта менеджер ярлыков сообщит вам об этом, и вы сможете выбрать другую комбинацию.

Вы можете иметь ярлык для включения повернутого дисплея и другой, чтобы вернуть его в вертикальное положение. Вы даже можете, если вы достаточно осведомлены, написать команду, которая поддерживает состояние и просто переключается между вертикальным / повернутым.

Теперь, что касается команды, которую вы должны использовать, это, вероятно, 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)

В этом случае мой --output будет LVDS1, так как все остальные отключены.

roadmr
источник
2
Это отлично.
Агменор
Я новичок в Linux, и я попытался настроить это, но когда я использую команду, ничего не происходит. Что-то еще, что я должен настроить, чтобы гарантировать, что мои пользовательские сочетания клавиш работают? Встроенные команды работают, но не те, которые я создал. Я использую Ubuntu 14.04. Я следовал указаниям и написал следующее в командной строке. xrandr --output HDMI1 - повернуть влево Я использовал Ctrl + Left в качестве ярлыка. Когда я использую эту команду в терминале, все отлично работает. Только не с сочетанием клавиш.
Нельсонд
@nelsond Вы убедились, что используете HDMI1 xrandr -q?
Старейшина Гик
11
Эй, делать xrandr -o rightтоже работает и не нужно указывать текущую цель
whitenoisedb
Я получил output LVDS1 not found;и output HTMI1 not found;благодаря комментарию @ whitenoisedb, который я просто использовал xrandr -o normal, без указания --outputаргумента для возврата экрана в нормальном направлении.
Поль Ружье
16

Прекрасно работает с

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Вергадин TheDwarf
источник
Есть ли альтернатива, которая не включает и не выключает мой экран (я использую fglrx)
Suici Doga
идеальное решение
Waseem
5

Вот хороший пример того, как это сделать на основе сенсорного ввода: 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 '[^ ]+$')

# 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
Винсент Джеррис
источник
monitor-sensorне делает никаких выводов. Вы знаете, могу ли я это настроить? У меня есть л.с. и lsmod | grep accшоуhp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Мина Майкл
@MinaMichael вы, возможно, испытываете ошибку ядра. Смотрите здесь
JrBenito
Он работает на ядре 4.8, может быть ошибкой в ​​более поздних версиях, так как используемый мной скрипт перестал работать никогда. Пожалуйста, внесите свой вклад в сообщение об ошибке, если вы можете, или подайте новую ошибку, если применимо.
Винсент
1

Я написал сценарий оболочки для этого. (Требуется 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

Если вам нравятся однострочники:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
Алекс Рош
источник
1
Для меня это $5вместо $4.
Николай
1
С xrandr --version 1.5.0 у меня работает 5 долларов (опасность использования текстового вывода) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalбезопаснее, так как по умолчанию он «нормальный»
Alexx Roche