Configuring the screensaver in Linux Mint MATE

I'm running Linux Mint MATE 18.2 (Sonya) on two PCs, and one of the things that I've found annoying is the inability to configure the screensaver in mate-screensaver-preferences. It all looks just like xscreensaver, but it's missing bits.

My goal was to display a slideshow of pictures, located on a network share, without any panning or zooming or any other special effects. I also didn't want any of the pictures in ~/Pictures/ included.

Mint MATE includes a screensaver called Pictures Folder which displays the images in ~/Pictures/ but that's not quite what I wanted. It also has a port of the xscreensaver GLSlideshow which can accept a path, but is constantly panning and zooming the images, which I find very distracting.

It took some digging to determine how to set the image folder for GLSlideshow, in the end it turned out that it still uses ~/.xscreensaver, so I was able to copy a working config over from another PC that acutally had xscreensaver installed. The relavant line looks like this:

imageDirectory:    /path/to/Pictures

That solved the path issue, but what about the panning and zooming? Well it turns out that GLSlideshow has options specifically to control that.

$ /usr/lib/xscreensaver/glslideshow --help
GLSlideshow: from the XScreenSaver 5.34 distribution (24-Oct-2015)
             http://www.jwz.org/xscreensaver/

Options include: -root, -window, -mono, -install, -noinstall, 
		 -visual , -window-id , -fps, -no-fps, -pair, 
		 -fade , -pan , -duration , -zoom , 
		 -cutoff , -titles, -letterbox, -no-letterbox, -clip, 
		 -mipmaps, -no-mipmaps, -debug, -delay , -wireframe, 
		 -no-wireframe, -shm, -no-shm.

The option I was interested in was -zoom. After some trial and error, I determined that -zoom 100 (presumably for 100%) would cause the image to display and remain full size. Even better, it didn't pan around either.

The next question was, where to set it? I tried setting it in ~/.xscreensaver like I would on a PC that was running xscreensaver, however it appeared that that file was only referenced by specific screensavers, not by mate-screensaver. With some digging, I turned up the file /usr/share/applications/screensavers/glslideshow.desktop (dpkg -L mate-screensaver got me pointed to the right spot). In this file, just like any other launcher file, is a line that looks like this:

Exec=/usr/lib/xscreensaver/glslideshow -root

And with a little tweaking, it ended up looking like this:

Exec=/usr/lib/xscreensaver/glslideshow -root -zoom 100

Running mate-screensaver-preferences, the preview window showed that my changes appeared to take effect. To be sure, I launched the screensaver properly with mate-screensaver-command --activate. Problem solved. Incidentally, the glslideshow.desktop file is how I initially located the glslideshow executable to determine it's options.

There you have it, that's how to configure a screensaver in Linux Mint MATE 18.2 Sonya when the provided UI isn't enough.

EDIT: I'm providing my .xscreensaver configuration as a sample. This was originally taken from a machine with a working copy of xscreensaver, but has been used successfully to set the image directory for GLSlideshow.

Tags : linuxmintmatescreensaver

Published on  June 20th, 2017