Eu gostaria de desligar meus monitores duplos executando:
xset dpms force off
mas apenas o monitor principal está sendo desligado enquanto o outro fica com uma "tela preta" (como se estivesse desligado), mas não está desligado. O led ainda está verde, indicando que o monitor está ligado.
Responder1
O que exatamente você está tentando realizar? Para gerenciar o uso do monitor você pode/deve usar a extensão randr onde xrandr
seria a arma preferida em scripts.
xrandr -q
mostra todas as saídas do seu computador e algumas informações sobre os monitores conectados. Para desabilitar uma saída você colocaria algo como xrandr --output=HDMI1 --off
. No seu caso, você deve substituir "HDMI1" por qualquer nome xrandr -q
que indique que suas saídas são nomeadas. Com sua saída desativada, o X não usa mais este monitor (de forma alguma) e provavelmente entrará em estado de suspensão.
Se você realmente deseja que o monitor seja desligado, seu problema é que xset
você não sabe nem se importa com quantos monitores você conectou ao seu computador, porque xset
fala com Xservers, não com seus componentes e definitivamente não com hardware. Isso significa xset
que envia exatamente uma solicitação "dpms force off" e essa solicitação é (processada e) enviada para um de seus monitores pelo Xserver. Eu acho que ele envia para o seu monitor principal, ou seja, aquele conectado à saída que aparece primeiro na lista mostrada por xrandr -q
. Esse é o mesmo monitor em que seu painel do gnome fica, se você estiver usando o gnome.
Na verdade, acho que você terá que emitir sua xset
solicitação duas vezes. Se isso não ajudar imediatamente, presumo que você precise ser explícito sobre qual dos monitores conectados é o principal e qual não é.
xrandr
permite que você defina a saída/monitor principal usando a --primary
opção. Se suas saídas forem HDMI1
e HDMI2
, eu tentaria:
xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off
Verifique a saída xrandr -q
e escreva um script que desligue seus monitores na ordem inversa em que estão listados, ou seja, de baixo para cima. A razão para isso é que, embora (x)randr deva ser capaz de tornar as saídas arbitrariamente a saída padrão, eu não confiaria/não confiaria que ele funcionasse perfeitamente, especialmente se houver drivers de código fechado envolvidos. Ao trabalhar em seus monitores na ordem inversa, você desliga o monitor primário "natural" por último e, se algo der errado, ter o monitor primário "natural" disponível é sua melhor chance de ter um Xserver totalmente funcional.
Responder2
Esclarecimento da pergunta: Suponho que Rox queira desligar seus monitores quando for embora (mas deixar o computador ligado). Isso normalmente acontece depois que o protetor de tela mostra padrões bonitos por um tempo. Usar o comando "xset dpms force off" é uma maneira de testar se as coisas estão funcionando sem ter que esperar meia hora para o protetor de tela DPMS entrar em ação. essa é apenas outra maneira de acelerar os testes).
Acabei de testar isso no meu sistema. Possui: 01:00.0 Controlador compatível com VGA: Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450] e quando digito "xset dpms force off" ambos os monitores mostram "sem sinal" por três segundos e depois acendi o led âmbar (ou seja, modo de espera). "funciona para mim"!
Então... Para descobrir o que há de errado na sua situação: Você pode trocar monitores para verificar se o seu segundo monitor é compatível com DPMS? Se for esse o caso, como espero, isso pode ser um bug. Provavelmente bastante específico para o seu chip/software. Você está executando o software mais recente? (por exemplo, Ubuntu 12.04).