Gibt es eine programmierbare Möglichkeit, um festzustellen, ob der Bildschirm gesperrt ist?

8

Ich habe viele Sachen in meiner Crontab, einschließlich einiger, die mit meinem Bildschirm sprechen. Wenn ich nicht da bin, um zu benachrichtigen, möchte ich nicht, dass es ausgeführt wird.

Gibt es eine Möglichkeit, zu überprüfen, ob der Computer gesperrt ist, damit ich ihn davon abhalten kann, Dinge zu tun, wenn ich nicht an meinem Schreibtisch bin? Oder alternativ andere Dinge nur tun, wenn ich nicht an meinem Schreibtisch bin?

Dave Jacoby
quelle

Antworten:

10

Führen Sie diesen Befehl aus:

gnome-screensaver-command -q | grep "is active"

Wenn es eine Ausgabe hat, ist der Bildschirm gesperrt.

In einem Shell-Skript können Sie eine Klausel wie die folgende verwenden:

if (gnome-screensaver-command -q | grep "is active");
then
    ...
fi

(Mein Dank geht an DoR, der diese Befehle ursprünglich hier gepostet hat. )

Stefano Palazzo
quelle
3
Wenn Sie grepin einem Test verwenden, ist es am besten, diese zu verwenden, grep -qdamit keine Ausgabe an die Konsole erfolgt. Auch die Klammern sind redundant - sie führen dazu, dass eine Unterschale erstellt wird, obwohl dies in diesem Fall nicht erforderlich ist.
Guss
Testen Sie es jetzt, um zu sehen, ob ich darauf aufbauen kann. Es scheint beim ersten Test etwas zerbrechlich und inkonsistent zu sein, aber das könnte nur ich sein.
Dave Jacoby
Beim zweiten Gedanken scheint es zu beginnen, zusammenzukommen. Vielen Dank.
Dave Jacoby
1
Sie sagen nicht "Danke", sondern stimmen zu und markieren es als "akzeptierte Antwort", wenn Sie nett sind, bitte. :)
Benutzer unbekannt
1
@ VarLogRant keine Eile oder irgendetwas, nur um Sie wissen zu lassen, können Sie Ihre Meinung über die akzeptierte Antwort jederzeit ändern, indem Sie einfach erneut auf das grüne Häkchen klicken, um sie rückgängig zu machen
Stefano Palazzo
1

Lichtschrank

light-locker-command -q

oder

light-locker-command -t


xscreensaver

Sie können die Ausgabe von xscreensaver-command -watchoder beobachten, wenn beim Löschen eine Sperrung auftrittxscreensaver-command -time


Siehe Einheit - Wie erkennt man, ob der Bildschirm gesperrt ist? für Gnome-Screensaver-Befehl unter Unity

Unhammer
quelle