Como posso girar minha exibição da maneira mais fácil?

51

Eu sou o feliz proprietário de um monitor de pivô, cuja tela pode ser girada (fisicamente). Qual é a maneira mais fácil de fazer meu monitor girar quando ligo meu monitor?

No momento, eu inicio o aplicativo 'Displays' pela primeira vez, altero as configurações e confirmo. Mas este é de fato um procedimento bastante laborioso, já que quero mudar minha orientação para algumas vezes por minuto.

Então, há um indicador para isso, ou equivalente? Posso definir um atalho de teclado que inicie um comando dedicado? Na verdade, estou pensando em algo parecido com o programa do Windows iRotate .

    
por Agmenor 16.01.2012 / 02:01

4 respostas

81

Entre no teclado - > Atalhos, selecione "Atalhos personalizados" e pressione "+" para adicionar um novo atalho.

"Nome" é um nome descritivo para a ação (por exemplo, "Girar monitor"). Em "Comando", digite o comando personalizado a ser executado quando o atalho estiver ativado.

Quando o atalho estiver na lista, selecione sua linha, pressione ENTER e, em seguida, a combinação de teclas que você deseja ativar o atalho. Se houver um conflito, o gerenciador de atalhos lhe dirá isso e você poderá escolher uma combinação diferente.

Você pode ter um atalho para ativar a exibição girada e outro para trazê-lo de volta à posição vertical. Você pode até mesmo, se tiver conhecimento suficiente, escrever um comando que mantenha o estado e apenas alterne entre vertical / girado.

Agora, quanto ao comando que você precisa usar, provavelmente é xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

O parâmetro de saída depende de qual porta seu monitor está conectado. Para ver o que você tem atualmente, digite:

xrandr -q

A minha diz:

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)

Nesse caso, meu --output seria LVDS1, pois todos os outros estão desconectados.

    
por roadmr 16.01.2012 / 03:36
14

Funciona muito bem com

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

Aqui está um bom exemplo de como fazer isso com base na entrada do sensor: link

Então, basicamente tente o acima para identificar a tela que você deseja ver girada. Dependendo do monitor do modelo, pode haver um sensor que envia um sinal?

Isso funciona muito bem para o meu Lenovo Yoga 2 11 com sensor de rotação embutido e também move o dock de unidade.

O 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 pré-requisito para os sensores:

sudo apt install iio-sensor-proxy inotify-tools
    
por Vincent Gerris 14.12.2016 / 17:44
0

Eu escrevi um script de shell para fazer isso. (Requer 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 você gosta de one-liners:

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

Tags