画面がロックされ、セーバーがアクティブであるかどうかを検出する必要があるスクリプトがあります。
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を使用しています。
Unityをデスクトップ環境として使用している場合
qdbus org.gnome.ScreenSaver /com/canonical/Unity/Session com.canonical.Unity.Session.IsLocked
画面がロックされている場合はtrue
を出力し、そうでない場合はfalse
を出力します