Desativa a exibição do X11 / Xorg (não está em espera)

1

Em Waayland, usei busctl --user set-property org.gnome.Mutter.DisplayConfig /org/gnome/Mutter/DisplayConfig org.gnome.Mutter.DisplayConfig PowerSaveMode off para desativar / ativar a exibição, mas depois de ter que voltar para o X11 devido a Wayland ficar inutilizável, esse comando funciona da mesma maneira que o dpms é desativado.

Com o X11, posso executar sleep 1; xset dpms force off , mas isso só coloca o monitor em standby e será ativado assim que qualquer entrada for detectada, como movimentos do mouse. Isso são comportamentos indesejados e eu prefiro a capacidade de ativar a exibição com um atalho específico. Dessa forma, posso ter certeza de que a tela não liga sozinha ou acidentalmente.

Então, como faço para forçar o display a desligar de tal forma a impedir que a entrada do usuário o acenda novamente no X11?

    
por DominicM 09.05.2017 / 11:55

1 resposta

0

Acho que você possivelmente entendeu mal o que o DPMS "off" significa. Veja a tabela em Wikipedia , o que o DPMS realmente faz é sinalizar o estado de economia de energia ao ativar a sincronização horizontal e a sincronização vertical sinais (ou o equivalente HDMI), e desativando o DAC na placa gráfica, enquanto o resto da placa gráfica continua funcionando. Então você está não desligando tudo completamente, você está entrando no modo de economia de energia "mais profundo" possível.

OTOH, usando xrandr --off realmente desliga completamente a saída, e desativa tudo na placa gráfica que é usada para produzir a saída, como se o monitor não estivesse conectado a nada. E, claro, se for o seu único monitor, isso não funciona, já que não há mais exibição gráfica para desenhar qualquer coisa. Isso é realmente para habilitar e desabilitar monitores adicionais de segundo ou terceiro.

Para que você não o queira "completamente desligado", você quer o mais profundo estado de economia de energia do DPMS, que por acaso é chamado de "desligado".

Seu comando busctl diz ao Wayland para usar o PowerSaveMode , ou seja, o DPMS. E o Wayland não parece reativar o DPMS quando detecta entradas de mouse ou teclado, então ele fica desligado.

Da mesma forma, xset dpms diz ao servidor X para usar o DPMS. Isso é completamente a mesma coisa. A diferença é que o servidor X reativa o DPMS quando detecta entradas.

Quanto a "por que", é como os desenvolvedores decidiram como isso deveria funcionar. Em X, xset dpms funciona mesmo quando não há protetor de tela extra, e é por isso que a maneira de ligar a tela novamente foi incorporada no servidor X. Para Wayland, os designers parecem ter decidido que você sempre precisa de um programa extra de proteção de tela (cujo trabalho é comunicar o desejado PowerSaveMode ao Wayland), de modo que ele deixa para o protetor de tela monitorar as entradas e ativar a tela novamente . Que você é capaz de fingir ser um programa protetor de tela usando busctl é mais ou menos um acidente.

Não é um bug, é um design diferente.

Como eu disse, tente pegar as entradas do mouse e do teclado com evtest --grab /dev/input/eventX (use apenas evtest para ver qual dispositivo é qual. Cuidado, os números não precisam permanecer os mesmos nas botas, olhe os links simbólicos do udev) ou o equivalente ioctl se você estiver escrevendo seu próprio programa de proteção de tela. Se você quiser monitorar as entradas para uma combinação específica, você precisa fazer isso de qualquer maneira.

    
por 11.05.2017 / 07:50