¿Cómo puedo girar mi pantalla de la manera más fácil?

54

Soy el afortunado propietario de un monitor pivote, cuya pantalla se puede girar (físicamente). ¿Cuál es la forma más fácil de hacer que mi pantalla gire cuando enciendo mi monitor?

Por el momento, primero lanzo la aplicación 'Displays' y luego cambio la configuración y confirmo. Pero este es, de hecho, un procedimiento bastante complicado, ya que quiero cambiar mi orientación unas pocas veces por minuto.

Entonces, ¿hay un indicador para esto o equivalente? ¿Puedo establecer un método abreviado de teclado que inicie un comando dedicado? De hecho, estoy pensando en algo similar al programa de Windows iRotate .

Agmenor
fuente

Respuestas:

94

Vaya a Teclado -> Accesos directos, seleccione "Accesos directos personalizados" y presione "+" para agregar un nuevo acceso directo.

"Nombre" es un nombre descriptivo para la acción (es decir, "Girar monitor"). En "Comando", escriba el comando personalizado que se ejecutará cuando se active el acceso directo.

Una vez que el acceso directo está en la lista, seleccione su fila, presione ENTRAR, luego la combinación de teclas que desea activar el acceso directo. Si hay un conflicto, el administrador de accesos directos te lo dirá, y puedes elegir una combinación diferente.

Puede tener un acceso directo para habilitar la visualización girada y otro para volver a colocarlo en posición vertical. Incluso puede, si tiene los conocimientos suficientes, escribir un comando que mantenga el estado y simplemente cambie entre vertical / girado.

Ahora, en cuanto al comando que necesita usar, probablemente sea xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

El parámetro de salida depende del puerto al que esté conectado su monitor. Para ver lo que tiene actualmente, escriba:

xrandr -q

El mío 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)

En este caso, mi salida sería LVDS1, ya que todos los demás están desconectados.

roadmr
fuente
2
Esto es excelente.
Agmenor
Soy nuevo en Linux e intenté configurarlo, pero cuando uso el comando no sucede nada. ¿Hay algo más que deba configurar para garantizar que mis atajos de teclado personalizados funcionen? Los comandos integrados funcionan, pero no los personalizados que creé. Estoy usando Ubuntu 14.04. Seguí las instrucciones y escribí lo siguiente en la línea de comando. xrandr --outout HDMI1 --rotate left Usé ctrl + left como acceso directo. Cuando uso ese comando en la terminal, todo funciona muy bien. Simplemente no con el atajo de teclado.
nelsond
@nelsond ¿verificó que está utilizando HDMI1 xrandr -q?
Élder Geek
11
Oye, hacerlo xrandr -o righttambién funciona y no necesita especificar el objetivo actual
whitenoisedb
Llegué output LVDS1 not found;y output HTMI1 not found;gracias al comentario de @ whitenoisedb Simplemente utilicé xrandr -o normal, sin especificar el --outputargumento para poner la parte posterior de la pantalla en la dirección normal.
Paul Rougieux
16

Funciona muy bien con

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Vergadin TheDwarf
fuente
¿Hay alguna alternativa que no encienda y apague mi pantalla (estoy usando fglrx)
Suici Doga
solución perfecta
Waseem
5

Aquí hay un buen ejemplo de cómo hacerlo basado en la entrada del sensor: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

Básicamente, intente lo anterior para identificar la pantalla que desea ver rotada. Según el modelo de monitor, ¿puede haber un sensor que envíe una señal?

Esto funciona muy bien para mi Lenovo Yoga 2 11 con sensor de rotación incorporado y también mueve la unidad dock.

La secuencia de comandos:

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

y prerrequisito para los sensores:

sudo apt install iio-sensor-proxy inotify-tools
Vincent Gerris
fuente
monitor-sensorno hace ninguna salida. ¿Sabes si puedo configurarlo? Tengo un HP y lsmod | grep accespectáculoshp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael
@MinaMichael puede estar experimentando un error del kernel. Mira aquí
JrBenito
Funciona en el kernel 4.8, de hecho puede ser un error en versiones posteriores, ya que el script que uso dejó de funcionar en versiones nunca. Contribuya al informe de errores si puede o presente un nuevo error, si corresponde.
Vincent Gerris el
1

Escribí un script de shell para hacer esto. (Requiere 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

Si te gustan las frases sencillas:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
Alexx Roche
fuente
1
Para mí es en $5lugar de $4.
Nicolai
1
Con xrandr --version 1.5.0 $ 5 está funcionando para mí (el peligro de usar la salida de texto) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normales más seguro ya que el valor predeterminado es "normal"
Alexx Roche