GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich ein Skript zum Sperren/Entsperren des Bildschirms aus?

Der Gnome-Bildschirmschoner gibt einige Signale auf dbus aus, wenn etwas passiert.

Hier die Dokumentation (mit einigen Beispielen).

Sie könnten ein Skript schreiben, das Folgendes ausführt:

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'"

und das tut, was Sie jederzeit brauchen dbus-monitor gibt eine Zeile darüber aus, ob der Bildschirm gesperrt/entsperrt ist.

Hier ein Bash-Befehl, um das zu tun, was Sie brauchen:

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
  while read x; do
    case "$x" in 
      *"boolean true"*) echo SCREEN_LOCKED;;
      *"boolean false"*) echo SCREEN_UNLOCKED;;  
    esac
  done

Ersetzen Sie einfach echo SCREEN_LOCKED und echo SCREEN_UNLOCKED mit dem, was Sie brauchen.


In Ubuntu 14.04 hat sich das DBus-Ereignis zum Entsperren der Bildschirmsperre geändert und das neue Skript zum Binden an Ereignisse zum Sperren und Entsperren des Bildschirms sieht wie folgt aus

dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \
(
  while true; do
    read X
    if echo $X | grep "desktop-lock" &> /dev/null; then
      SCREEN_LOCKED;
    elif echo $X | grep "desktop-unlock" &> /dev/null; then
      SCREEN_UNLOCKED;
    fi
  done
)

Heutzutage denke ich, dass es besser ist, die LockedHint zu hören statt Bildschirmschonermeldungen. Auf diese Weise sind Sie nicht an eine Bildschirmschoner-Implementierung gebunden.

Hier ist ein einfaches Skript dafür:

gdbus monitor -y -d org.freedesktop.login1 | grep LockedHint

Ergibt dies:

/org/freedesktop/login1/session/_32: org.freedesktop.DBus.Properties.PropertiesChanged ('org.freedesktop.login1.Session', {'LockedHint': <true>}, @as [])
/org/freedesktop/login1/session/_32: org.freedesktop.DBus.Properties.PropertiesChanged ('org.freedesktop.login1.Session', {'LockedHint': <false>}, @as [])

Linux
  1. Linux – Wie führt man ein Skript zum Sperren/Entsperren des Bildschirms aus?

  2. Wie lässt sich ein Skript rückwirkend als Root ausführen?

  3. Wie sperrt man den Bildschirm?

  4. Wie man ein Skript ausführt??

  5. So führen Sie Python-Skripte von der Shell aus

So führen Sie ein Bash-Skript aus {7 Methoden}

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So führen Sie ein Python-Skript in PHP aus

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus

So führen Sie ein Bash-Skript aus

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus