在 KDE 和其他一些桌面环境中,您可以在 dbus 上监听接口org.freedesktop.ScreenSaver
。
执行此操作的脚本如下所示:
dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver'" |
while read x; do
case "$x" in
# You can call your desired script in the following line instead of the echo:
*"boolean true"*) echo SCREEN_LOCKED;;
*"boolean false"*) echo SCREEN_UNLOCKED;;
esac
done
Run Code Online (Sandbox Code Playgroud)
另请参阅此问题以获取更多信息。