Что-то, что я сделал, это использовал xscreensaver
(установил только пустой экран, чтобы не запускать какие-либо графические хаки), а затем просмотрите его, используя 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
Страница man содержит пример, который стоит посмотреть.
К сожалению, фондовая xscreensaver
биржа настаивает на том, чтобы время от времени устанавливать для параметров DPMS свои собственные значения. Я представил патч, чтобы остановить это, но jwz отказался. Вы можете найти этот патч полезным или просто скомпилировать xscreensaver --without-dpms-ext
.
В качестве альтернативы может быть полезно изучить xscreensaver
код, чтобы понять, как написать свой собственный наблюдатель.