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

This comment has been minimized.

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!

@niclet

This comment has been minimized.

Copy link

niclet commented Jan 27, 2019

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

@JoshuaJChan

This comment has been minimized.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.