我有一个脚本需要检测屏幕是否被锁定以及保护程序是否处于活动状态。
在 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
否则