hc keybind $mod-q reload
hc keybind $mod-Shift-q quit
# Find an existing screen locker.
-for locker in xtrlock ''; do
+for locker in xscreensaver xtrlock ''; do
if installed "$locker"; then
break
fi
if test -z "$locker"; then
echo 'No screen locker found!' | notify 60
fi
+# Additional options.
+locker_pre=
+if test x"$locker" = xxscreensaver; then
+ # Start xscreensaver if it's not already running. xscreensaver-command
+ # ensures xscreensaver is availble for the current X session.
+ locker_pre='xscreensaver-command -time >/dev/null 2>&1 || xscreensaver &'
+ locker='xscreensaver-command -lock'
+fi
# Lock the screen. The sleep is necessary to allow xtrlock to grab the
# keyboard input.
-hc keybind $mod-z spawn sh -c "sleep 1 && exec $locker"
+hc keybind $mod-z spawn sh -c "$locker_pre sleep 1; exec $locker"
# Tag key bindings. Create tags 1 to 9 with bindings to switch and move
# windows to them.