Me gustaría ejecutar un script si la sesión de Gnome está bloqueada y desbloqueada.
¿Hay alguna forma de interceptar esto y realizar ciertas acciones cuando el escritorio está bloqueado o desbloqueado?
Respuesta aceptada:
Gnome-screensaver emite algunas señales en dbus cuando sucede algo.
Aquí la documentación (con algunos ejemplos).
Podrías escribir un script que ejecute:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'"
y eso hace lo que necesita en cualquier momento dbus-monitor
imprime una línea sobre el bloqueo/desbloqueo de la pantalla.
Aquí un comando bash para hacer lo que necesitas:
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
Simplemente reemplace echo SCREEN_LOCKED
y echo SCREEN_UNLOCKED
con lo que necesitas.