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

50

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

Per il momento lancio per la prima volta l'app "Displays", quindi cambio le impostazioni e conferma. Ma questa è una procedura piuttosto laboriosa, 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 per avviare un comando dedicato? In effetti sto pensando a qualcosa di simile al programma Windows iRotate .

    
posta Agmenor 16.01.2012 - 02:01

4 risposte

80

Vai in Tastiera - & gt; Scorciatoie, seleziona "Scorciatoie personalizzate" e premi "+" per aggiungere un nuovo collegamento.

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

Una volta che il collegamento è nella lista, seleziona la sua riga, premi INVIO, quindi la combinazione di tasti che vuoi attivare il collegamento. Se c'è un conflitto, il gestore di scorciatoie te lo dirà e puoi scegliere una combinazione diversa.

Puoi avere una scorciatoia 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 semplicemente commuta 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 uscita dipende da quale porta è collegato il monitor. Per vedere cosa 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, come tutti gli altri sono disconnessi.

    
risposta data roadmr 16.01.2012 - 03:36
14

Funziona alla grande con

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
    
risposta data Vergadin TheDwarf 29.04.2015 - 23:06
3

Ecco un bell'esempio su come farlo in base all'input del sensore: link

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

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

Lo script:

#!/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
    
risposta data Vincent Gerris 14.12.2016 - 17:44
0

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 }')
display=$(xrandr -q|grep -v dis|grep connected|awk '{print }')
if [ "$orientation" == "inverted" ]; then
   xrandr --output $display --rotate normal
else
   xrandr --output $display --rotate inverted
fi

Se ti piacciono le one-liner:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print }')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
    
risposta data Alexx Roche 16.05.2017 - 08:57

Leggi altre domande sui tag