Deep down in my heart I am a minimalist and to me CrunchBang Linux has the right balance between minimalism and usefulness. However, one thing I've always struggled with it is the choice of xscreensaver for the simple lock screen task because it also does monitor power management, which has to be turned off to avoid conflict with xfce4 power manager.
Last week I finally decided to bite the bullet and replaced it with much simpler slock and here's how I did it.
Step 1 - Remove xscreensaver and install the screen locker of your choice
To remove xscreensaver simply:
sudo apt-get purge xscreensaver
Next, you'll need to install xautolock to lock screen automatically after certain idle time (mine's set to 1 minute):
sudo apt-get install xautolock
Now you have to choose a screen locker. I use slock
, which is probably the simplest screen lock ever because all you get is a blank lock screen. There's also xtrlock
, which is installed by apt
automatically when I installed xautolock and i3lock, which allows you to choose a background image for the lock screen.
Once you've decided which one you wanna use, here's the hackery part of the job. You need to:
cd /usr/bin
sudo ln -s slock xflock4
Right now you might be thinking, "gee this is a hack, there must be a better way". The truth is there really isn't because the XFce4 Power Manager is hard-coded to try a list of screen lockers in the source code:
xfpm_lock_screen (void)
{
gboolean ret = g_spawn_command_line_async ("xflock4", NULL);
if ( !ret )
{
g_spawn_command_line_async ("gnome-screensaver-command -l", NULL);
}
if ( !ret )
{
/* this should be the default*/
ret = g_spawn_command_line_async ("xdg-screensaver lock", NULL);
}
if ( !ret )
{
ret = g_spawn_command_line_async ("xscreensaver-command -lock", NULL);
}
if ( !ret )
{
g_critical ("Connot lock screen\n");
}
}
Step 2 - Auto start xautolock
You need to add the following line to ~/.config/openbox/autostart
to auto start the xautolock
with right idle interval in minutes and screen locker name:
xautolock -time 1 -locker "slock" &
Remember to replace slock
with the screen locker of your choice.
Step 3 - Update lock screen keyboard shortcut
Finally, find the following section in the ~/.config/openbox/rc.xml
and enter the screen locker name in the <Command></Command>
section.
<keybind key="W-l">
<action name="Execute">
<startupnotify>
<enabled>true</enabled>
<name>Lock screen</name>
</startupnotify>
<command>cb-lock</command>
</action>
</keybind>
I think you have a mistake in your symlink creation. I believe you meant this:
ReplyDeletesudo ln -s slock xflock4
Yes you are right and I've corrected it thanks
ReplyDeleteAfter this, I went to reinstall Xscreensaver, & now it won't run. Any suggestions?
ReplyDeleteHi, if you delete the soft link /usr/bin/xflock4 created on step:
ReplyDeletesudo ln -s slock xflock4
and remove the autostart entry from your
~/.config/openbox/autostart
the hardcoded if...else block should take care of the rest