Enquanto dois ou mais monitores trabalham juntos, existe alguma maneira de colocar um deles em espera / suspensão, emitindo um comando como xset dpms force suspend
:? ou com um tempo definido para esse fim, como: o xset dpms 100 0 0
que funciona nesses monitores separadamente?
Eu tenho dois monitores trabalhando juntos, eDP1 (My Laptop) e VGA1 (An External monitor).
Eu quero que cada um deles entre no modo de suspensão / espera separadamente, se não estiver interagindo diretamente com eles, suponha que esteja assistindo a um filme no VGA1, e por uma hora e meia o eDP1 não faça nada.
Não estou interessado em usar xrandor --off --output eDP1
porque não é rápido o suficiente para trabalhar.
Quero que meu monitor esteja pronto para funcionar, com um simples movimento do mouse, para poder alternar rapidamente entre eles.
- Execução: Ubuntu 18.04
- Gerenciador de Janelas: OpenBox
Respostas:
Controlar monitores individuais não é possível com o xset (e o X11, na verdade)
Como o título sugere, não é possível por razões de como
xset
é construído e devido às funções do X11 que ele usa. Se olharmos para o código-fonte,xset
chamadasDPMSForceLevel(dpy,DPMSModeSuspend)
( linha 557 ) e a variável DISPLAYdpy
vem deXOpenDisplay()
função ( linha 203 ), e que é por definição :Em outras palavras,
xset
aplica configurações globalmente a toda a exibição, não a telas individuais. Seria necessário alterar oxset
código fonte para que isso funcionasse. As próprias extensões DPMS parecem chamar apenas a exibição inteira, não telas individuais, portanto, não é possível nem escrever código personalizado com a biblioteca X11.O controle manual dessa configuração via
/sys
subsistema também não parece estar funcionandoAs telas também são retiradas do modo DPMS quando ocorrem eventos de tecla ou mouse; portanto, considerando que você pode mover o mouse ou usar o teclado, qualquer uma dessas ações faria o monitor sair do modo DPMS.
Soluções alternativas
A melhor alternativa (e a solução que realmente funciona fisicamente) é
xrandr
- ela poderia ser usada para controlar as "saídas" individuais. Em particular,irá definir essa saída. Sim, você mencionou que não deseja usar esta solução, pois ela não é rápida o suficiente, mas até agora é a melhor disponível. Tem algumas vantagens:
xset
A
xrandr --output VGA-1 --brightness 0.1
tela será colorida de maneira que apareça, mesmo que--brightness
seja uma solução de software, para que a tela não fique realmente esmaecida no nível do hardware, nem no nível do hardware. No entanto, ele faz o trabalho de apagar uma tela e também é resistente a eventos de tecla / mouse.Eu olhei o código fonte dos protetores de tela Mate e Budgie, que são bifurcações do protetor de tela GNOME, no entanto, em ambos os casos, eles parecem ser uma solução de software, já que não há menção de DPMS no código fonte.
fonte
xrandr --off
, por enquantoxrandr -off
desliga o monitor. Pode ser o mesmo quebrightness
definido como zero? Qual é outro problema? Tenho um programa que funciona 24 horas por dia, 7 dias por semana, que define o brilho e a gama individualmente para 3 monitores que nem o Windows pode fazer. Não tenho certeza se a luz noturna, o desvio para o vermelho ou o fluxo o fazem. De qualquer forma, esses programas podem ficar confusos com o xrandr off. Desculpe pelo seqüestro de sua resposta com especulando :)Por anos, eu tinha o meu laptop configurado de forma que, quando a tampa estivesse fechada, o laptop fosse suspenso e os monitores externos ficassem em branco.
Por sua razão de querer assistir a um vídeo por 90 minutos no monitor externo e deixar a tela do laptop em branco, mudei a opção de fechar a tampa para "Não fazer nada":
Não estou usando o DPMS para monitores externos, mas você pode verificar suas configurações com o
xset q
comando:Observe estas linhas:
prefer blanking: no
Observe também estas linhas:
DPMS is enabled
definir o monitorStandby
quando desejar.Esperamos que outros usuários tenham usado essas opções e postado uma resposta detalhada para você.
fonte
Que tal simplesmente fechar o laptop?
Por quê?
Esses dois monitores são uma área de exibição, portanto, desligar um deles criará uma série de problemas como redesenho de tela, aplicativos movendo-se para o monitor principal, ...
(Eu segui esse caminho há alguns anos e a única maneira confiável que encontrei de fazer o que você quer fazer é pressionar o botão no monitor externo ou fechar o laptop)
Apenas certifique-se de definir essas configurações de energia com
gsettings set
:fonte
Comentário temporário
xrandr
. Em um teste mais longo, isso funcionou muito mal. Não muito o desligamento falhou, mas ao reativar a tela, o layout da tela estava totalmente bagunçado. Ficaria feliz em publicá-lo para ver se ele funciona no seu caso, mas meu conselho é não usá-lo.No script, voltei a definir o brilho como zero.
Então, o que eu mudei nesta versão?
O tempo ocioso agora é definido pela atividade do teclado e do mouse por padrão. Acordar também é feito por qualquer um.
Escurecer automaticamente a tela inativa
Como dito pelos meus colegas respondentes, desligar as telas do CLI separadamente é um desafio, na melhor das hipóteses, e também não encontrei uma opção.
O que eu encontrei é uma maneira de escurecer automaticamente todas as telas, exceto aquela em que o mouse está, após o tempo x.
Aqui vamos nós
Como configurar
A configuração é simples:
Verifique se você possui os dois
python3-gi
exprintidle
instalouCopie o script acima em um arquivo vazio, salve-o como
dim_inactive
e torne-o executávelExecute-o pelo comando:
um exemplo:
escurecerá todas as telas em que o mouse não estiver após dois minutos
Informações / explicações adicionais
fonte
xrandr --off
eu acho.xrandr --off
é o que eu preferiria neste caso. Especialmente porque a luz de fundo VGA não pode ser controlada por software.1
em nenhuma circunstância. Quando estou interagindo com a tela externa usando o teclado e enquanto o mouse está na tela principal, o externo fica preto após o tempo ocioso. Quando não tenho interação com a tela principal, mas o mouse está lá, ele não faz nada e, quando movo o mouse para outra tela principal, um fica iminentemente preto.