Desligar monitores duplos com "xset dpms force off" não funciona - por quê?

Desligar monitores duplos com "xset dpms force off" não funciona - por quê?

Eu gostaria de desligar meus monitores duplos executando: xset dpms force offmas 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 xrandrseria a arma preferida em scripts.

xrandr -qmostra 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 -qque 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 xsetvocê não sabe nem se importa com quantos monitores você conectou ao seu computador, porque xsetfala com Xservers, não com seus componentes e definitivamente não com hardware. Isso significa xsetque 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 xsetsolicitaçã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 é.

xrandrpermite que você defina a saída/monitor principal usando a --primaryopção. Se suas saídas forem HDMI1e HDMI2, eu tentaria:

xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off

Verifique a saída xrandr -qe 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).

informação relacionada