Search code examples
lockingfedoradbusx11gnome-3

Run script on Fedora screen lock


I'm looking for a way to run a program when locking the screen in Fedora 15 (linux). Basically I want to start running a motion detection program when the screen locks, or I manually hit Ctrl+Alt+L, but I don't know what commands are being run or where to alias my own intermediate step in. I assume it's:

gnome-screensaver-command --lock 

but am not sure how to go about this. Anybody know how, or a direction to start looking in?

Edit, since link was in a comment: This is done with dbus-monitor and described here.


Solution

  • The dbus system advertises screen locking; monitor for ActiveChanged on org.gnome.ScreenSaver. (see http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html )

    e.g. (word-wrapped for clarity)

        signal sender=:1.68 -> dest=(null destination) 
               serial=53 path=/org/gnome/ScreenSaver; 
               interface=org.gnome.ScreenSaver; member=ActiveChanged
            boolean true
    

    Unfortunately, this will require writing more code than just a shell script, I'm afraid; although I'd be curious if you could ask dbus to call your program as a handler for that signal, somehow; otherwise, I suppose you'd just start a daemon process and listen for that signal to be broadcast…