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.