如何在 Ubuntu 16 中检测屏幕保护程序状态

如何在 Ubuntu 16 中检测屏幕保护程序状态

我有一个脚本需要检测屏幕是否被锁定以及保护程序是否处于活动状态。

在 Ubuntu 12 中,我曾经调用gnome-screensaver-command -q。此命令在 16.04 中仍然可用,但它总是报告屏幕保护程序处于非活动状态。

我通过运行此脚本进行了测试:

#!/bin/bash
while true; do
    echo "Checking..."
    gnome-screensaver-command -q;
    sleep 1;
done

然后屏幕被锁了几秒钟。整个过程中,屏幕一直显示“屏幕保护程序处于非活动状态”。

Ubuntu 16.04 中做了哪些改变来解决这个问题,以及如何获得屏幕是否被锁定的准确报告?

编辑:我正在使用 Gnome。

答案1

如果你使用 Unity 作为桌面环境

qdbus org.gnome.ScreenSaver /com/canonical/Unity/Session com.canonical.Unity.Session.IsLocked

true如果屏幕被锁定,则会打印,false否则

相关内容