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
.