A guide to running just Xscreensaver in KDE for Slackware 14.1
Background: The KDE4 developers chose to cloak kscreensaver and kscreenlocker wrapper programs around the core of Xscreensaver. Bypassing Xscreensaver's own, well debugged screenlocker, Gtk interface and setup screen.
In my encounters, KDE4's implementation of those wrappers have been buggy. And seem to vary in quality between KDE release versions. I've encountered continuing issues in using kscreensaver and kscreenlocker that were triggered by particular settings in KDE, phases of the moon and entrails sacrificed upon the temple alter of one's choice.
KDE 4.10.5 had the same issues with a different flavor this time around. And more entrails didn't cure the problem, but made great sausage.
The following is a step by step how-to for those who like KDE 4.10.5 in Slackware 14.1, but would rather have Xscreensaver perform screen saving and screen locking functions for the desktop. As it was meant to be:
Turn off both kscreensaver and kscreenlocker: Life is better with composite disabled. Disable composite. Really. Disable composite.
From your start menu. Take the system settings trail from <system settings> <Desktop Effects> to the <advanced> tab. Locate and check the box for suspend desktop effects for full screen windows
Click the apply button.
Cruise on over to <system settings> <Display and Monitor> <screenlocker>
Set button for screen locker type to screensaver. Uncheck the box [Start Automatically].
Click the apply button.
Log out to the login screen. Why? KDE is still running it's screenlocker wrapper somewhere. Log back in.
Roll up your command line sleeves. Fire up konsole.
As a superuser or sudo, locate kscreenlocker_greet. Usually found in /usr/lib/kde4/libexec or /usr/lib64/kde4/libexec.
mv kscreenlocker_greet to kscreenlocker_greet.orig You may want to use it again someday.
vi, vim or whatever, create kscreenlocker_greet and with these two lines:
#!/bin/sh
xscreensaver-command -lock
Save file. And make it executable. chmod a+x kscreenlocker_greet
Exit out of superuser or su. Return to your user directory. cd ~/.kde/Autostart
Using vi, vim. Create this file. xscreensaver.desktop
and add the following five lines:
[Desktop Entry]
Exec=xscreensaver -no-splash
Name=Xscreensaver
Type=Application
X-KDE-StartupNotify=false
Save. Make xscreensaver.desktop executable. chmod 744 xscreensaver.desktop
Close out command line konsole. The no-splash option allows xscreensaver to start up silently.
Go to your kde system settings. <system settings> <Startup and Shutdown> <Autostart>
xscreensaver.desktop will show up in the Desktop file entry. If it's not clicked. Click Enabled status.
Close system settings. Log out and log back in. KDE will pop up a notify box. That a new program, xscreensaver, is being run in Autostart. Should you continue? Press continue.
Locate xscreensaver in the start menu under Settings. Click and set up your favorite screen saver settings in xscreensaver. Using the KDE lock button will bring up your selected screen saver and pressing any key or mouse will pop up the xscreensaver's lock notification screen to login with your password when it's time to kill xscreenlock.
Yes, the lock notification screen is GTK in appearance, but it works. I'll take functionality over buggy lockups and the inconsistent behavior of KDE's wrappers any day.
Have fun.
[Edit 12/05/2013:] Oooops. I edited a correction to the above text. In xscreensaver.desktop, the line: <Exec=xscreensaver -no-splash>
exec should be Exec. The command is case sensitive!
[Edit 12/06/2013] Another correction to the above text. In kscreenlocker_greet, the command should be xcreensaver-commmand not xscreenlocker.
And make xscreensaver.desktop executable.
Last edited by gordydawg; 12-06-2013 at 02:41 PM.
|