Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Watch xscreensaver lock/unlock events and act on them.
#!/bin/sh
# Watch xscreensaver and react to status changes.
#
# Replaced my previous perl-based recipe with this:
# http://semicomplete.googlecode.com/svn/tools/xscreensaver-watch.sh
#
# Include somewhere in X session startup with:
#
# xscreensaver-watch &
lock() {
# Log this somewhere with `date` instead of just echoing.
echo `uname -n` screen is now blank
# Do other things here, like stop music playback & mute speakers.
}
unlock() {
# Log this somewhere with `date` instead of just echoing.
echo `uname -n` screen is now unblank
# Do other things here, like resume music playback & unmute speakers.
}
xscreensaver-command -watch | while read a; do
echo "$a" | grep -q '^LOCK' && lock
echo "$a" | grep -q '^UNBLANK' && unlock
done
@dimm0k
Copy link

dimm0k commented Nov 16, 2016

thanks, great code! I was looking for this to reset my HDMI audio/video driver after the monitor goes to sleep!

Loading

@niclet
Copy link

niclet commented Jan 27, 2019

On my raspberry, lock occurs with '^BLANK' keyword.
Now my touchscreen goes really to sleep.
Thanks

Loading

@JoshuaJChan
Copy link

JoshuaJChan commented Aug 4, 2019

sick!!! I was looking for this all day. Now I can use i3lock to substitute xscreensaver's crusty login screen

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment