Algo que fiz foi usar xscreensaver
(definido para em branco apenas na tela, para não executar nenhum gráfico) e, em seguida, assisti-lo usando xscreensaver-command -watch
:
-watch Prints a line each time the screensaver changes state: when the
screen blanks, locks, unblanks, or when the running hack is
changed. This option never returns; it is intended for use by
shell scripts that want to react to the screensaver in some
way. An example of its output would be:
BLANK Fri Nov 5 01:57:22 1999
RUN 34
RUN 79
RUN 16
LOCK Fri Nov 5 01:57:22 1999
RUN 76
RUN 12
UNBLANK Fri Nov 5 02:05:59 1999
A página man inclui um exemplo que vale a pena conferir.
Infelizmente, o estoque xscreensaver
insiste em definir as configurações do DPMS com seus próprios valores de tempos em tempos. Eu enviei um um patch para pará-lo fazendo isso , mas o jwz recusou. Você pode achar o patch útil - ou apenas compilar o xscreensaver com --without-dpms-ext
.
Como alternativa, pode ser instrutivo examinar o código xscreensaver
para dicas sobre como escrever seu próprio observador.