Come posso ruotare il mio display nel modo più semplice?


54

Sono il fortunato proprietario di un monitor pivot, il cui schermo può essere ruotato (fisicamente). Qual è il modo più semplice per far girare il mio display quando giro il monitor?

Per il momento lancio prima l'app 'Display', quindi modifico le impostazioni e confermo. Ma questa è in realtà una procedura piuttosto faticosa, dal momento che voglio cambiare il mio orientamento fino a poche volte al minuto.

Quindi c'è un indicatore per questo, o equivalente? Posso impostare una scorciatoia da tastiera che lanci un comando dedicato? In effetti sto pensando a qualcosa di simile al programma Windows iRotate .

Risposte:


94

Vai in Tastiera -> Scorciatoie, seleziona "Scorciatoie personalizzate" e premi "+" per aggiungere una nuova scorciatoia.

"Nome" è un nome descrittivo per l'azione (ad esempio "Ruota monitor"). In "Comando" digitare il comando personalizzato da eseguire quando il collegamento è attivato.

Una volta che il collegamento è nell'elenco, selezionare la sua riga, premere INVIO, quindi la combinazione di tasti che si desidera attivare il collegamento. In caso di conflitto, lo dirà il gestore delle scorciatoie e potrai scegliere una combinazione diversa.

Puoi avere scorciatoie per abilitare la visualizzazione ruotata e un'altra per riportarla in posizione verticale. Puoi anche, se sei abbastanza informato, scrivere un comando che mantenga lo stato e commuti tra verticale / ruotato.

Ora, come per il comando che devi usare, è probabilmente xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

Il parametro di output dipende dalla porta a cui è collegato il monitor. Per vedere quello che hai attualmente, digita:

xrandr -q

Il mio dice:

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)

In questo caso il mio --output sarebbe LVDS1, poiché tutti gli altri sono disconnessi.


2
Questo è eccellente
Agmenor,

Sono nuovo di Linux e ho provato a configurarlo, ma quando uso il comando non succede nulla. C'è qualcos'altro che devo configurare per garantire il funzionamento delle mie scorciatoie da tastiera personalizzate? I comandi integrati funzionano, non solo quelli personalizzati che ho creato. Sto usando Ubuntu 14.04. Ho seguito le indicazioni e ho scritto quanto segue nella riga di comando. xrandr --output HDMI1 --rotate left Ho usato ctrl + left come scorciatoia. Quando uso quel comando nel terminale, tutto funziona alla grande. Solo non con la scorciatoia da tastiera.
nelsond,

@nelsond hai verificato che stai utilizzando HDMI1 con xrandr -q?
Anziano Geek,

11
Ehi, xrandr -o rightanche fare funziona e non è necessario specificare l'obiettivo attuale
whitenoisedb

Ho ottenuto output LVDS1 not found;e output HTMI1 not found;grazie al commento di @ whitenoisedb ho semplicemente usato xrandr -o normal, senza specificare l' --outputargomento per riportare lo schermo nella direzione normale.
Paul Rougieux,

16

Funziona alla grande con

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal

Esiste un'alternativa che non accende e spegne lo schermo (sto usando fglrx)
Suici Doga,

soluzione perfetta
Waseem

5

Ecco un bell'esempio su come farlo in base all'input del sensore: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

Quindi sostanzialmente prova quanto sopra per identificare lo schermo che vuoi vedere ruotato. A seconda del modello di monitor potrebbe esserci un sensore che invia un segnale?

Funziona bene con il mio Lenovo Yoga 2 11 con sensore di rotazione integrato e sposta anche l'unità dock.

Il copione:

#!/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

e prerequisito per i sensori:

sudo apt install iio-sensor-proxy inotify-tools

monitor-sensornon produce alcun output. Sai se posso configurarlo? Ho un hp e lsmod | grep accspettacolihp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael

@MinaMichael potresti riscontrare un bug nel kernel. Guarda qui
JrBenito,

Funziona con il kernel 4.8, può davvero essere un bug nelle versioni successive, poiché lo script che uso smette di funzionare su versioni mai. Si prega di contribuire alla segnalazione dei bug se è possibile o presentare un nuovo bug, se applicabile.
Vincent Gerris,

1

Ho scritto uno script di shell per farlo. (Richiede 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

Se ti piace una linea:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted

1
Per me $5invece è $4.
Nicolai,

1
Con xrandr --version 1.5.0 $ 5 funziona per me (il pericolo di utilizzare l'output di testo) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalè più sicuro in quanto viene impostato come "normale"
Alexx Roche
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.