You don't need to worry about complicated configuration options, everything should run smoothly out of the box. Just select a directory with some nice pictures (e.g., your digital photo collection) and let the show begin

There are prebuilt packages for Debian and Ubuntu (i386 architecture, only). You can either download them via the links below, or more conveniently, apt-get them:
Put one of the following lines into your /etc/apt/sources.list file:
deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver debian-sarge/ # Debian stable "Sarge"
deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver debian-unstable/ # Debian unstable (requires KDE 3.5.0 from Alioth (or experimental?))
deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver ubuntu-breezy/ # (K)Ubuntu "Breezy"
Then do the usual steps to install the package:
#> apt-get update
#> apt-get install smoothslidesaver
If you have another Debian based distribution and/or architecture (or if the unstable packages can't be installed), you can easily build your own package. Add the following line to /etc/apt/sources.list:
deb-src http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver source/
Then execute the following commands:
#> apt-get update
#> mkdir smoothslidesaver
#> cd smoothslidesaver
#> apt-get build-dep smoothslidesaver
#> apt-get source --compile smoothslidesaver
#> dpkg -i smoothslidesaver_*.deb
If you have another distribution installed on your computer, you will have to do it the hard way, sorry :-/ Download the source tarball from the link below, untar it and then execute the following steps in the source directory:
#> ./configure
#> make
#> make install
Ratings & Comments
55 Comments
After having run this for years, I suddenly can't get it to compile. The only change on my system I can think of is upgrading libjpeg from version 6 to 7. make all-recursive make[1]: Entering directory `/smoothslidesaver-0.4.2' Making all in po make[2]: Entering directory `/smoothslidesaver-0.4.2/po' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/smoothslidesaver-0.4.2/po' Making all in src make[2]: Entering directory `/smoothslidesaver-0.4.2/src' source='smoothslidewidget.cpp' object='smoothslidewidget.o' libtool=no \ depfile='.deps/smoothslidewidget.Po' tmpdepfile='.deps/smoothslidewidget.TPo' \ depmode=gcc3 /bin/sh ../admin/depcomp \ g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/kde/3.5/include -I/usr/qt/3/include -I. -UQT_NO_ASCII_CAST -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -c -o smoothslidewidget.o `test -f 'smoothslidewidget.cpp' || echo './'`smoothslidewidget.cpp In file included from /usr/qt/3/include/qwindowdefs.h:47, from /usr/qt/3/include/qpaintdevice.h:45, from /usr/qt/3/include/qpixmap.h:45, from /usr/qt/3/include/qimage.h:45, from smoothslidewidget.cpp:29: /usr/qt/3/include/qstring.h: In member function ‘char QChar::latin1() const’: /usr/qt/3/include/qstring.h:197: warning: conversion to ‘char’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In member function ‘void QChar::setCell(uchar)’: /usr/qt/3/include/qstring.h:222: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In member function ‘void QChar::setRow(uchar)’: /usr/qt/3/include/qstring.h:223: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In constructor ‘QChar::QChar(uchar, uchar)’: /usr/qt/3/include/qstring.h:267: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In constructor ‘QStringData::QStringData(QChar*, uint, uint)’: /usr/qt/3/include/qstring.h:365: warning: conversion to ‘unsigned int:30’ from ‘uint’ may alter its value /usr/qt/3/include/qstring.h:365: warning: conversion to ‘unsigned int:30’ from ‘uint’ may alter its value In file included from smoothslidewidget.cpp:29: /usr/qt/3/include/qimage.h: In member function ‘bool QImageTextKeyLang::operator<(const QImageTextKeyLang&) const’: /usr/qt/3/include/qimage.h:61: warning: suggest parentheses around && within || In file included from /usr/qt/3/include/qobject.h:48, from /usr/kde/3.5/include/kconfigbase.h:26, from /usr/kde/3.5/include/kconfig.h:29, from smoothslidewidget.cpp:31: /usr/qt/3/include/qevent.h: In member function ‘void QDropEvent::setAction(QDropEvent::Action)’: /usr/qt/3/include/qevent.h:523: warning: conversion to ‘unsigned char’ from ‘uint’ may alter its value In file included from /usr/qt/3/include/qwidget.h:52, from /usr/qt/3/include/qdialog.h:45, from /usr/kde/3.5/include/kdialog.h:26, from /usr/kde/3.5/include/kdialogbase.h:26, from /usr/kde/3.5/include/kaboutdialog.h:33, from smoothslidesaver.h:24, from smoothslidewidget.cpp:35: /usr/qt/3/include/qsizepolicy.h: In member function ‘void QSizePolicy::transpose()’: /usr/qt/3/include/qsizepolicy.h:125: warning: conversion to ‘uchar’ from ‘uint’ may alter its value /usr/qt/3/include/qsizepolicy.h:125: warning: conversion to ‘uchar’ from ‘uint’ may alter its value In file included from /usr/kde/3.5/include/klistbox.h:21, from /usr/kde/3.5/include/kjanuswidget.h:27, from /usr/kde/3.5/include/kdialogbase.h:27, from /usr/kde/3.5/include/kaboutdialog.h:33, from smoothslidesaver.h:24, from smoothslidewidget.cpp:35: /usr/qt/3/include/qlistbox.h: In member function ‘int QListBox::cellWidth() const’: /usr/qt/3/include/qlistbox.h:194: warning: conversion to ‘int’ from ‘long int’ may alter its value /usr/qt/3/include/qlistbox.h: In member function ‘int QListBox::cellWidth(int) const’: /usr/qt/3/include/qlistbox.h:195: warning: conversion to ‘int’ from ‘long int’ may alter its value In file included from smoothslidesaver.h:29, from smoothslidewidget.cpp:35: smoothslidewidget.h: In member function ‘float ViewTrans::transX(float) const’: smoothslidewidget.h:40: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘float ViewTrans::transY(float) const’: smoothslidewidget.h:41: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘float ViewTrans::scale(float) const’: smoothslidewidget.h:42: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘double ViewTrans::rnd() const’: smoothslidewidget.h:47: error: ‘rand’ was not declared in this scope smoothslidewidget.h:47: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.h: In member function ‘double ViewTrans::rndSign() const’: smoothslidewidget.h:48: error: ‘rand’ was not declared in this scope smoothslidewidget.h:48: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.cpp: In constructor ‘ViewTrans::ViewTrans(bool, float)’: smoothslidewidget.cpp:56: warning: suggest parentheses around comparison in operand of ^ smoothslidewidget.cpp:75: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp:76: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp: In constructor ‘SmoothSlideWidget::SmoothSlideWidget(QWidget*, const char*)’: smoothslidewidget.cpp:130: error: ‘srand’ was not declared in this scope smoothslidewidget.cpp:145: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp:146: error: ‘rand’ was not declared in this scope smoothslidewidget.cpp:146: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.cpp: In member function ‘void SmoothSlideWidget::paintTexture(Image*)’: smoothslidewidget.cpp:377: warning: conversion to ‘GLfloat’ from ‘double’ may alter its value smoothslidewidget.cpp:377: warning: conversion to ‘GLfloat’ from ‘double’ may alter its value In file included from smoothslidewidget.cpp:422: /usr/qt/3/include/qmemarray.h: In member function ‘bool QMemArray<type>::resize(uint) [with type = unsigned int]’: /usr/qt/3/include/qglcolormap.h:83: instantiated from here /usr/qt/3/include/qmemarray.h:73: warning: conversion to ‘uint’ from ‘long unsigned int’ may alter its value make[2]: *** [smoothslidewidget.o] Error 1 make[2]: Leaving directory `/smoothslidesaver-0.4.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/smoothslidesaver-0.4.2' make: *** [all] Error 2
Hey, have you thought about making it available for KDE4? I really think this should be part of the standard distribution. You might still make it into 4.2.0 ;-) -- Dennis
I can't change to KDE 4 before this works. Please, carstenw42, can you let us know if it's at all possible for you to port this?
Hey, don't worry, you can still manually add the old screensaver to kde4. Just look at the desktop files for screensavers once you've installed kde4 and then adjust one to start sss. I've done it before and it worked fine.
Excellent, thanks for sharing!
Hi! I just downloaded this and is very nice software, but it has some problems in kubuntu 7.04 (also in mandriva 2007.1) when I use compiz/beryl and start the saver at the same time. The problems are: - when i return from the saver the screen needs to be repainted, but that doesn't happen. - when i'm inside the saver any change to an element like a window or a dock/taskbar element makes the saver to blink.... this doesn't happens when i work without beryl/compiz...
I like it so much, the fade and transition effects are very good and give a new dimension to my images, thank you for sharing it!
It would be great if the plugin could auto rotate images based on exif data.
I installed the Mandriva rpm & it worked fine, but it really maxes out my CPU. I don't have a graphics card, so I try not to run resource heavy screensavers. This one had my CPU running at 100%. Those with a graphics card shouldn't have a problem with it though.
Thank you for sharing this, it's great! I'm using a folder with about 4000 pictures in it. But very often SSS shows the same picture several times within a short time. It seems that the randomness isn't perfect. When my system is under heavy load (io), SSS often keeps showing the same picture over and over, fading it in and out. Thanks again!
After installing the app without problems, it only shows the bottom quarter of the current picture at the top of the screen, the rest of the screen is just blank, any ideas?
Hello, I have the same problem with a Mandriva 2007. Also with smoothslidesaver-0.4.2-1mdk.i586.rpm and smoothslidesaver_0.4.2-2.tar.gz. Any ideas ?
on gentoo I had to run KDEDIR=/usr/kde/3.4/ ./configure in order to detect kde
Very nice! What about adding an option to adjust zoom level?
Maybe in the next release. Just out of curiosity: In your opinion, is the current zooming too aggressive or the opposite?
It would be nice if both zoom level and pan speed were adjustable. Where in the code could I hard code different values for these?
Hmmm ... this will probably require some trial and error, but you can play with the floating-point math in the class ViewTrans in smoothslidewidget.cpp. A starting point may be the threshold values used by the two loops in this class' constructor. However, the speed of the movement will still depend on the per-image duration one configures for the slideshow. I know, the code could be a bit more flexible here ;-)
Hi, this may sound kinda dumb....... ya gotta remember I'm not too bright.... But, I teach school..... I'm wonderin'....if it would be possible to put this in a live cd distro.... put my science pics in it.... since the school uses windoze....run the distro as a live cd and run my pics in this as a screensaver.... again....I'm not too bright...just an idea! ain't xandros great! woodsmoke
What about being able to slow down the effect and selecting different transitions? Excellent screensaver btw...
Hmm, currently, the duration of the cross-fade effect is 10% of the duration an image is shown. Fade out + fade in takes 20%. You could increase the interval in which images change, but I guess you already tried that ... What do you mean with 'choosing different transitions'? Additional transition effects? It is possible to disable either the cross-fade effect or the fade-out/fade-in effect, but you have to do this in the config file. Add DisableCrossFade=true or DisableFadeInOut=true to ~/kde/share/config/smoothslidesaver.kssrc. Anyway, I tried to keep the number of configuration options in the GUI as low as possible. I think that a lot of of programs (especially screensaver) have far too many checkboxes and sliders that are a source of confusion. Of course, that's my personal opinion. But before I change anything, I would like to hear others, too.
it's my new screensaver :) maybe you could add an option to hide the cursor ?
Huh? KDE takes care of hiding the cursor, when a screensaver is run. The mouse pointer is only visible in preview mode (when you click 'Test' in the screensaver configuration dialog).
Sounds great ! What about someone making an ebuild ?
/usr/bin/smoothslidesaver.kss -setup opens the setup dialog, and -root runs it in full screen.
I think you should make a separate program for viewing photos, or build this into gwenview for example. So that you can use it to watch/show your photos, not just as a screensaver. i dont know any linux program made especialy for slideshows (like photodex for windowz, for example). it would be cool!