K.Mandla's blog of Linux experiences

Xscreensaver as wallpaper

Edit: Unfortunately, the images originally included in this post are gone, because of hosting problems in late 2009. My apologies.

I usually avoid xscreensaver like the plague (as I have said elsewhere on these blogs). However, there is one neat trick I like about them.

If you install the xscreensaver package, you can trigger an individual screensaver and force it to run on the X background — like wallpaper.

The screensaver moves and responds just like normal, except you keep all the Openbox functions and window manager behavior.

First, kill conky. Sorry, but conky’s refresh is going to make your screensaver flip out. (Yes, like a ninja.) It has the same effect it did on the xcompmgr effects. You can live without it. Go get yourself some dockapps to take its place. I already showed you two coolones.

Next, trigger the screensaver you like with the root flag, and make sure you force it into the background. You can do this from a terminal window like this.

/usr/libexec/xscreensaver/goop -root &

(For other distros, you might have to poke around to find the screensaver’s location. This is on Arch, and it strikes me as an unusual location, but I’m not 100 percent sure.)

Note the -root flag, and the & at the end. For most (I can’t say all, because I haven’t checked) screensavers, the root flag pushes it to the X root window and voila! (I love saying that :mrgreen:) a screensaver for wallpaper.

(P.S.: If you use pixelmap inheritance for pseudo-transparency, like with urxvt, you’ll notice that the terminal emulator still uses your root window image as its pixelmap. It’s not going to pick up the screensaver. Sorry.)

If you have one you know you want, I suppose you could add it to your .xinitrc file, and it would be there on startup. I like having it in my Openbox menu, so I can pick from two or three.

xmatrix is a good one for this. coral is also nice, and goop runs well. Starfish is definitely in the top three. I don’t have 3D acceleration on this laptop, so I’ll leave it to you to try the heavyweights (send me screenshots if you get GLBlur to run).

I haven’t decided yet, but I might, just might, see if the xcompmgr transparency effects work with this. I have a feeling that might cause my little 300Mhz machine to melt down, though. It’s already running at nearly 80 percent with nothing else running, if htop is to be believed. ;)

P.S.: If you don’t remember what a particular screensaver looks like, look here.

P.P.S: Combining xcompmgr and xscreensaver doesn’t produce the glitz you would hope for. Like the pseudo-transparency I mentioned above, xcompmgr doesn’t seem to notice the shifting wallpaper, and instead sets its transparencies against the image on the root window. Furthermore, the shadow effects are corrupted as the screensaver moves, so there’s a flickering effect at times. It was worth a try. ;)

Of course you have to change the path to your movie to point to a movie that actually exists. I assume the movie file formats are only limited to what MPlayer can play.

*Note: Nautilus users must make sure they prevent Nautilus from drawing the desktop. This can be done by installing the gtweakui packages and simply going into System>Preferences>gTweakUI Nautilus and unchecking ‘Use Nautilus to draw the desktop’. This will disable desktop icons/wallpaper. Other desktop environments will presumably need similar treatment.