Alternar monitores na linha de comando

21

Desde que encontrei um método diferente para atingir meu objetivo, e como nenhuma resposta foi postada na minha pergunta anterior, alterei a pergunta para corresponder à resposta que encontrei.

Existe uma maneira de desligar o monitor do meu laptop e ligar o monitor externo (e vice-versa) inteiramente a partir da linha de comando?

Malabarba
fonte
Eu estava pesquisando exatamente a mesma coisa e me deparei com essa pergunta que você fez apenas 7 minutos atrás. Isso é incrível. Eu espero que você obtenha uma resposta.
JD Long
Eu sei que você pode soltar um básico xorg.confno /root/yorg.conf.newdiretório raiz ( ), se você inicializar no modo de recuperação e executar X --configure(ou similar).
Bobby
o problema (pelo menos para mim) é que não quero escrever um xorg.conf manualmente. Quero despejar minhas configurações atuais no formato xorg.conf, depois alterar as configurações com a GUI e despejá-las em um arquivo. Então eu posso escrever um script para alternar entre as duas configurações muito fácil. Agora eu tenho que entrar na GUI e clicar meia dúzia de vezes para alterar minhas configurações.
JD Long
@JD Long: Isso é exatamente o que estou tentando fazer também. Certifique-se de escrever aqui se você encontrar um caminho. As únicas duas coisas que faltam para o meu script são os arquivos xorg.conf e um comando para atualizar as exibições atuais (sem a necessidade de reiniciar o gdm).
Malabarba
Hoje estou experimentando o disper ( willem.engen.nl/projects/disper ). O arquivo de ajuda mostra uma opção -p que deve ser exportada. Somente essa opção não está implementada. triste trombone
JD Longo

Respostas:

28

Com os comandos

xrandr --output VGA-0 --auto
xrandr --output LVDS --off 

A tela é transferida automaticamente para o monitor externo. Nem precisa de poderes sudo. Para descobrir o nome dos monitores, basta:

xrandr -q

O que deve dar algo como:

VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
...
LVDS connected (normal left inverted right x axis y axis)
...

A extensão das telas provavelmente pode ser alcançada de maneira semelhante.

Malabarba
fonte
Recebo a mensagem "Não é possível abrir a tela" ao executar o xrandr (com qualquer sinalizador). Qual pode ser a razão?
Brandizzi
4
Se xrandr -qLVDS1& VGA1: somente externa: xrandr --output VGA1 --auto --output LVDS1 --off. Extensão principal esquerda, interno: xrandr --output VGA1 --auto --left-of LVDS1 --output LVDS1 --auto --primary. Extensão principal esquerda, externo: xrandr --output VGA1 --auto --left-of LVDS1 --primary --output LVDS1 --auto. Interno apenas: xrandr --output VGA1 --off --output LVDS1 --auto.
boa resposta! Talvez valha a pena explicar para iniciantes qual será o interno e o externo entre VGA e LVDS?
Matifou 5/10
4

Esta certamente não é uma resposta direta à sua pergunta. Mas achei útil no meu caso de uso. Isso não é uma exportação do arquivo de configuração, mas mostra como automatizar o disper em um script de shell. Estou configurando isso para que seja executado sempre que eu acoplar / desconectar e parece estar corrigindo meus problemas de exibição ao acoplar e desacoplar meu laptop:

Você precisa ter o disper e o Python instalados.

#!/bin/sh
#
# Detect displays and move panels to the primary display
#

PYTHON=python2.6
DISPER=/usr/bin/disper

# disper command will detect and configure monitors
$PYTHON $DISPER --displays=auto -e -t left

# parse output from disper tool how many displays we have attached
# disper prints 2 lines per displer
lines=`$PYTHON $DISPER -l|wc -l`

display_count=$((lines / 2))

echo $display_count

echo "Detected display count:" $display_count

# Make sure that we move panels to the correct display based
# on the display count
if [ $display_count = 1 ] ; then
    echo "Moving panels to the internal LCD display"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "0"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "0"
    sleep 5
    pkill gnome-panel
else
    echo "Moving panels to the external display"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "1"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "1"
    sleep 5
    pkill gnome-panel
fi
JD Long
fonte
Disper parece ser uma ferramenta útil. Vou dar uma olhada e ver se consigo encaixar no meu caso. A única diferença é que eu quero desativar o monitor do laptop, em vez de estendê-lo. É um pouco mais suave no meu laptop de baixo custo e lida com os painéis automaticamente.
precisa saber é o seguinte
Pensando bem, minha placa de vídeo ati pode não ser suportada, pois eles afirmam apenas suportar nvidia.
Malabarba 21/06
Ok, a página mais detalhada me levou a esta página: thinkwiki.org/wiki/Sample_Fn-F7_script Acontece que é muito fácil alternar monitores com o comando xrandr.
Malabarba
obrigado por postar o link xrandr. Eu vou investigar isso. Estou brincando com as mesmas coisas. FWIW, meu laptop tem uma placa Intel e estou usando o disper sem problemas.
JD Longo