Como executar scripts na tela sleep / wake

3

Eu estou querendo saber como executar um script quando a tela expira e quando ela é ativada. Não estou falando de hibernação ou suspensão, mas apenas quando a tela é desligada.

O motivo é que eu tenho um teclado LED e quero alternar os LEDs embutidos na ativação.

    
por John Petryk 14.01.2015 / 05:43

1 resposta

2

você pode usar xset -q para verificar o status do seu monitor. Até agora eu tenho visto DPMS afirma que o monitor seja "Monitor está ligado", "Monitor está desligado" ou "Monitor está em suspensão". você poderia escrever um script que você inicie automaticamente depois que o xorg for iniciado:

#!/bin/bash
while true; do
    xset -q | grep "Monitor is On"
    if [ $? -eq 1 ]; then
        if [ "'cat /tmp/displaystate'" != "off" ]; then 
            echo "off" > /tmp/displaystate
            # do something when display is switched off
            /opt/myScreenOffAction.sh
        fi
        sleep 1
    else 
        if [ "'cat /tmp/displaystate'" != "on" ]; then 
            echo "on" > /tmp/displaystate
            #do something when display is switched on
            /opt/myScreenOffAction.sh
        fi
        sleep 10
    fi
done

Para testar seu script, você pode usar xset dpms force suspend para colocar sua tela em suspensão.

Eu sugiro que você faça o "Monitor is On", pois parece que existem estados diferentes para o off, como mencionado acima.

    
por Pascal Suter 25.01.2017 / 09:32