GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan skrip pada kunci/buka kunci layar?

Gnome-screensaver memancarkan beberapa sinyal pada dbus ketika sesuatu terjadi.

Berikut dokumentasinya (dengan beberapa contoh).

Anda dapat menulis skrip yang menjalankan:

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

dan itu melakukan apa yang Anda butuhkan kapan saja dbus-monitor mencetak baris tentang layar yang dikunci/dibuka.

Berikut perintah bash untuk melakukan apa yang Anda butuhkan:

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

Cukup ganti echo SCREEN_LOCKED dan echo SCREEN_UNLOCKED dengan apa yang Anda butuhkan.


Di ubuntu 14.04 acara DBus untuk membuka kunci layar telah berubah dan skrip baru untuk mengikat ke kunci layar dan membuka acara terlihat seperti berikut

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
)

Saat ini saya pikir lebih baik mendengarkan LockedHint daripada pesan screensaver. Dengan demikian, Anda tidak terikat dengan penerapan screensaver.

Berikut skrip sederhana untuk melakukannya:

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

Berikan ini:

/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. Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

  2. Bagaimana Cara Menjalankan Script Setelah Lanjutkan Dan Setelah Membuka Kunci Layar?

  3. Cara Mengunci dan Membuka Kunci Pengguna di Linux

  1. Cara menjalankan skrip shell saat startup

  2. Bagaimana cara melewati interaksi pengguna dalam skrip?

  3. Bagaimana cara membuka kunci layar dari skrip di KDE Plasma 5?

  1. Linux – Bagaimana Cara Menjalankan Script Pada Layar Lock/unlock?

  2. Bagaimana Menjalankan “find -exec {};?

  3. Bagaimana Mengunci Layar?