Як я можу обертати дисплей найбільш простим способом?


54

Я щасливий власник зсувного монітора, екран якого можна повернути (фізично). Який найпростіший спосіб зробити моє відображення повернутим, коли я повертаю монітор?

На даний момент я спочатку запускаю програму "Показати", а потім змінюю налаштування та підтверджую. Але це насправді досить трудомістка процедура, оскільки я хочу переключити свою орієнтацію до декількох разів на хвилину.

То чи є показник для цього чи еквівалент? Чи можу я встановити комбінацію клавіш, яка запустила б виділену команду? Насправді я думаю про щось подібне до програми Windows iRotate .

Відповіді:


94

Перейдіть до клавіатури -> ярлики, виберіть "Спеціальні ярлики" та натисніть "+", щоб додати нову ярлик.

"Name" - описова назва для дії (тобто "Поворот монітора"). У "Command" введіть спеціальну команду, яку потрібно запустити, коли активується ярлик.

Після того, як ярлик знаходиться у списку, виберіть його рядок, натисніть 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, оскільки всі інші відключені.


2
Це чудово.
Агменор

Я новачок у Linux і намагався налаштувати це, але коли я використовую команду, нічого не відбувається. Чи є ще щось, що я маю налаштувати, щоб забезпечити роботу моїх власних комбінацій клавіш? Вбудовані команди працюють, тільки не ті, які я створив. Я використовую Ubuntu 14.04. Я дотримувався вказівок і в командному рядку написав наступне. xrandr - вихідний HDMI1 - поворот ліворуч Я використовував ctrl + зліва як ярлик. Коли я використовую цю команду в терміналі, все працює чудово. Тільки не за допомогою комбінації клавіш.
nelsond

@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

Чи є альтернатива, яка не вмикає і не вимикає екран (я використовую 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.