Como posso girar minha tela da maneira mais fácil?

54

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

No momento, inicio o aplicativo 'Displays' pela primeira vez, altero as configurações e confirmo. Mas esse é, de fato, um procedimento bastante trabalhoso, pois quero mudar minha orientação algumas vezes por minuto.

Então, existe um indicador para isso, ou equivalente? Posso definir um atalho de teclado que inicie um comando dedicado? Na verdade, estou pensando em algo semelhante ao programa Windows iRotate .

Agmenor
fonte

Respostas:

94

Vá em Teclado -> Atalhos, selecione "Atalhos personalizados" e pressione "+" para adicionar um novo atalho.

"Nome" é um nome descritivo para a ação (ou seja, "Girar monitor"). Em "Comando", digite o comando personalizado para executar quando o atalho estiver ativado.

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

Você pode ter um atalho para ativar a exibição girada e outro para trazê-la de volta à posição vertical. Você pode, 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

O meu 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, minha saída seria LVDS1, pois todas as outras estão desconectadas.

roadmr
fonte
2
Isto e excelente.
Agmenor
Eu sou novo no linux e tentei configurar isso, mas quando uso o comando, nada acontece. Preciso configurar outra coisa para garantir que meus atalhos de teclado personalizados funcionem? Os comandos internos funcionam, mas não os personalizados que eu criei. Estou usando o Ubuntu 14.04. Eu segui as instruções e escrevi o seguinte na linha de comando. xrandr --output HDMI1 --rotate left Usei ctrl + left como atalho. Quando eu uso esse comando no terminal, tudo funciona muito bem. Apenas não com o atalho do teclado.
Nelsond
@nelsond Você verificou se está usando o HDMI1 xrandr -q?
Elder Geek
11
Hey, fazendo xrandr -o righttambém funciona e não é necessário especificar o alvo atual
whitenoisedb
Eu recebi output LVDS1 not found;e output HTMI1 not found;graças ao comentário de @ whitenoisedb que simplesmente usei xrandr -o normal, sem especificar o --outputargumento para colocar a tela de volta na direção normal.
Paul Rougieux 14/09/17
16

Funciona muito bem com

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Vergadin TheDwarf
fonte
Existe uma alternativa que não virar minha tela e fora (estou usando fglrx)
Suici Doga
solução perfeita
Waseem 31/03
5

Aqui está um bom exemplo de como fazer isso com base na entrada do sensor: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

Então, basicamente, tente o acima para identificar a tela que você deseja ver girada. Dependendo do modelo do monitor, 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 move a unidade dock também.

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
Vincent Gerris
fonte
monitor-sensornão produz nenhuma saída. Você sabe se eu posso configurá-lo? Eu tenho um hp e lsmod | grep accespectáculoshp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael
@MinaMichael, você pode estar enfrentando um bug no kernel. Veja aqui
JrBenito
Funciona no kernel 4.8, pode ser um bug em versões posteriores, já que o script que eu uso parou de funcionar em versões nunca. Por favor, contribua para o relatório de erros, se puder, ou arquive um novo erro, se aplicável.
Vincent Gerris
1

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
Alexx Roche
fonte
11
Para mim é ao $5invés de $4.
Nicolai
11
Com xrandr --version 1.5.0 $ 5 é trabalhar para mim (o perigo de usar a saída de texto) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalé mais seguro como o padrão é "normal"
Alexx Roche