スクリーンセーバーがロックされている間にスクリーンがオンになっているかどうかを検出するには?

スクリーンセーバーがロックされている間にスクリーンがオンになっているかどうかを検出するには?

MyCommandスクリーンセーバーがロックされている間に画面がオンになっているときに実行しようとしていますが、2つのケース、つまりKDE画面がロックされている場合とシステムが一時停止モードの場合です。どちらもキーボードを押すと目が覚めます。

もちろん、スクリーンセーバーがロックされている間も繰り返すことができます。

while [[ "`xset -q | grep -i "monitor is off"`" ]]; do sleep 1 ; done
MyCommand

MyCommand画面が開くと、これが行われます。しかし、これはエレガントではなく、リソースを消費します。それを使用する方法が必要ですdbus-monitor。私はこれに慣れていないので、dbusそれがどのように機能するのかわかりません。

私は前に試しました

dbus-monitor --session "type='signal',interface='org.kde.KScreen'"

dbus-monitor --session "type='signal',interface='org.kde.screensaver'"

dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver'"

dbus-monitor --session "type='signal',interface='org.kde.keyboard'"

dbus-monitor --session "type='signal',interface='org.kde.kwin'"

ただし、どちらも画面が点灯した時点を検出しません。

関連情報