How do I create a desktop wallpaper slideshow?

  • How do I create a desktop wallpaper slideshow with my own set of images?

    • With the images coming from a pictures folder, or pre-selected
    • With the images displayed in order, or randomly
    • With the images changing every few minutes, or after random periods of time

    In 2018, Variety seems to me the best tool for this job: https://peterlevi.com/variety/

  • snostorm

    snostorm Correct answer

    10 years ago

    For 11.04 and previous versions

    There's a program for creating wallpaper slideshows called CREBS. Check out this article about it: http://www.omgubuntu.co.uk/2010/05/crebs-the-ultimate-wallpaper-slideshow-application

    A simpler app that has fewer features but is easier to use can be found here: http://gnome-look.org/content/show.php/Wallpaper+Slideshow?content=125178

    alt text

  • If you use it to manage your photos and like it easy I recommend to use Shotwell, which should be installed by default.

    Open it:

    open shotwell

    Select the photos you want to be set as background slideshow:

    select images

    Open FileSet as Desktop Slideshow or press Ctrl+B:

    set as slideshow

    Adjust time settings:

    set time

    Done.

    Thanks a bunch! I like this solution over Wallch.. as you don't have to install any extra apps to achieve the same purpose

    do i need to create a startup application for the same or will it work everytime?

    Old thread, but comes up highest in search. This is BY FAR the easiest method. Still works perfectly and, to @Arun Kumar's question, loads automatically with no further work. Note: When trying to import images from a symlink, I had to change the import location in Settings by picking the folder, otherwise it would not allow selection of the images.

    Is the solution displaying Images randomly or sequentially? The images are zoomed or filled or spanned or something? Do they fit the desktop perfectly?

    is there a way to set the photos to be centred, scaled, zoomed, stretched etc with this feature? I dont see anything in preferences.

    Once I have set the desktop background slideshow from Shotwell, how do I disable it?

    Creating wallpaper slideshows is a feature that was added in Shotwell 0.8.0, released 2010-12-23.

    @Kalamalka Kid If you want your images scaled to your screen with e.g. a black background, follow the above post then go to Ubuntu System Settings > Appearance > Look > Background. Choose 'Scale' in the dropdown box and black as the color. This works in Ubuntu 14.04 LTS.

    The problem I see with `Shotwell` is that it has a limited number of images to use (roughly 2000), and before processing them, shotwell copies the images (for better performance, I assume), duplicating thus their sizes on the disk.

    one single issue, you need to select the photos themselves by multi select, selecting a folder or an album in the tree does not help, besides that GREAT UP!

    This should be the accepted answer.

    On 18.04 it just gives me a colored (no image) background despite selecting about 20 images to rotate.

  • Wallch

    In software center there are two wallpaper changer - wallch for Gnome-Shell/Unity/Gnome-Classic and Wally for KUbuntu.

    Lets concentrate on Wallch.

    Sadly the version of Wallch in the software centre is outdated and has many issues especially with 14.04! There's a repository with the recent version.

    To install, add the repository (you don't need to do this on 16.04):

    sudo add-apt-repository ppa:wallch/wallch-daily
    

    Then install Wallch:

    sudo apt-get update && sudo apt-get install wallch
    

    Then start from Dash:

    enter image description here

    Lets now launch the application preferences:

    enter image description here

    Let's untick the bubble notification - its annoying - at the same time you could disable sounds!

    enter image description here

    At the same time you can define the start-up options:

    enter image description here

    Save - and add a folder of pictures - in this example, use /usr/share/backgrounds for the default wallpapers that come with Ubuntu

    enter image description here

    Now we've got two choices:

    Start up choice 1

    (thanks @Naruto)

    keep wallch in in the launcher

    enter image description here

    exit wallch and start changing wallpapers

    enter image description here

    Start up choice 2

    start wallch on login without needing to have a launcher

    From the dash:

    enter image description here

    Then create a new startup application with the command wallch --constant

    enter image description here

    N.B. - for some computers this will not work. The solution is to introduce a delay to the startup of the wallch daemon as per the following Q&A:

    Wallch not auto-cycling backgrounds on log in

    Wallch is defective on Lubuntu 14.04. The change interval keeps defaulting to 10 minutes or thereabouts after a reboot.

    fire a bug report on launchpad - the maintainer is an active user here as well and will hopefully respond quickly to any issues reported.

    The version on the software centre is just outdated! Here's where to install the recent version: `sudo add-apt-repository ppa:wallch/wallch-daily` `sudo apt-get update && sudo apt-get install wallch` The software centre version didn't work for me but the up to date one works flawlessly! I'm 14.04 64 bits

    A daily build looks risky. Is there not another ppa for wallch?

    @fossfreedom♦ does this works on ubuntu 16.04

  • IMG:   Variety

    Homepage: http://peterlevi.com/variety
    Github: https://github.com/varietywalls/variety

    Variety is a wallpaper manager for Linux systems. It supports numerous desktops and wallpaper sources, including local files and online services: Flickr, Wallhaven, Unsplash, and more.

    Where supported, Variety sits as a tray icon to allow easy pausing and resuming. Otherwise, its desktop entry menu provides a similar set of options.

    Variety also includes a range of image effects, such as oil painting and blur, as well as options to layer quotes and a clock onto the background.

    enter image description here

    Install

    It's available in the Universe repo. To install it, run

    sudo apt install variety
    

    Also you can install it from Peter Levi's PPA by running

    sudo add-apt-repository ppa:peterlevi/ppa
    sudo apt-get update
    sudo apt-get install variety
    

    Wow, amazing software. Very nice features, including nice display of clock and proverbs.

    Thanks for that, much better than wallch, it let's you download images from multiple sources.

    I tested them all and this was the best, more possibilities and features

  • Create an XML file yourself. Use this script as a starting point with caution, it may have some errors.

    #!/bin/bash
    
    FILE="background.xml"
    DURATION=10.0
    TRANSITION=0.0
    
    CURRENTDIR=$PWD
    TRANSITION_XML="
    <static>
        <duration>$DURATION</duration>
        <file>$CURRENTDIR/%s</file>
    </static>
    <transition>
        <duration>$TRANSITION</duration>
        <from>$CURRENTDIR/%s</from>
        <to>$CURRENTDIR/%s</to>
    </transition>
    "
    
    # Random order
    shopt -s nullgob nocaseglob        # ignore non-existant extensions, case-insensitve
    IMGS=( *.{jpg,jpeg,png,gif} )
    INDICES=( $(shuf -e ${!IMGS[@]}) ) # randomize indices of images
    INDICES+=(${INDICES[0]})           # go back to first image after last
    COUNTER=${#IMGS[@]}
    
    exec > "$FILE"                     # all further output to the XML file
    echo "<background><starttime></starttime>"
    
    for ((i = 0; i < COUNTER; i++))
    do
        index=${INDICES[i]}
        printf "$TRANSITION_XML" "${IMGS[index]}" "${IMGS[index]}" "${IMGS[index + 1]}"
    done
    
    echo "</background>"
    

    Instructions:

    Once the background.xml file has been generated, right-click on the desktop, select Change Background Image, click Add..., then navigate to the directory containing the XML file. Just above the "Open" button change the selector from "Image" to "All files", then select the background.xml file and click on the "Open" button. The file can be renamed to be more descriptive, such as my_family.xml, landscapes-3.xml, etc., allowing one to have multiple slide show playlists.

    I have modified the above script, adapting it to be a Nautilus Script: http://www.stefanobagnatica.it/dl/jaub/create_slideshow.sh.txt Just put that in .local/share/nautilus/scripts, than in Nautilus select folder with wallpapers and right click > Scripts > create_slideshow: it will create XML file in .backgrounds and XML wallpaper definition file in gnome-background-properties folder.

    @Pisu could you please upload that script to another location? It now gives a 404 error.

    while this might seem like a nice answer, there are no instructions as to what to do with the file after it is created.

    The DURATION and TRANSITION values in the script are suitable for testing, but for actual use should be changed to something like 1795.0 and 5.0, giving static display times of half an hour per image with 5-second dissolve transitions.

    @Kalamalka Kid, once the background.xml file has been generated, right-click on the desktop, select Change Background Image, click Add..., then navigate to the directory containing the XML file. Just above the "Open" button change the selector from "Image" to "All files", then select the background.xml file and click on the "Open" button. The file can be renamed to be more descriptive, such as "my_family.xml", "landscapes-3.xml", etc., allowing one to have multiple slide show playlists.

    A cleaned-up and commented version of the script can be obtained from http://paste.ubuntu.com/23533511/ that outputs neatly formatted and indented XML code with comments. It has been tested on Ubuntu 10.04 "Lucid Lynx" with GNOME 2.30 as a Nautilus script and as a stand-alone script run from a terminal window in the directory containing the wallpaper images to be used in a slide show.

    Just tried it out out Ubuntu 16.04 - unfortunately there is no "All files" selector anymore. Any idea how do make it work on Ubuntu 16.04?

  • For gnome 3, generate the xml using one of the previous answers, then you could add the generated xml via the command line:

    gsettings set org.gnome.desktop.background picture-uri 'file:///home/pykler/.backgrounds/realtime/background.xml'
    

    Another Solution (this will add your bg to the Appearance area under gnome-control-center):

    mkdir -p ~/.local/share/gnome-background-properties/
    
    cat >~/.local/share/gnome-background-properties/custom-wallpapers.xml <<EOF
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
    <wallpapers>
      <wallpaper deleted="false">
        <name>Pykler</name>
        <filename>/home/pykler/.backgrounds/realtime/background.xml</filename>
        <options>zoom</options>
      </wallpaper>
     </wallpapers>
    EOF
    

    Replace the name "Pykler" and the path "/home/pykler/.backgrounds/realtime/background.xml" as needed.

  • For Gnome 3, you can use the Wallpaper Slideshow App.

    Wallpaper Slideshow App screenshot

    According to its developer, it has the following features:

    • Lets you choose the folder via a browser.
    • Lets you set the timeout in seconds.
    • Lets you chose depth of subdirectory.
    • You can enable or disable it with a single click.
    • Full-feature tooltips

    To download:

    git clone git://gitorious.org/gnome-3-wp/gnome-3-wp.git
    

    Then run wp-show in the gnome-3-wp folder in your home folder.

    For more information, see here and here.

    Won't work on newlly installed Oneiric Ubuntu 11.10. Had to fix the #!/usr/bin/env python2 to #!/usr/bin/env python but still it gives a bunch of errors.

  • Use cortina, it works pretty well.

    It can set the desktop background picture to be set a random file from a given directory.

    It can be installed via Ubuntu Software Center.

    Install via the software center

    I don't see this in the Software Centre in Natty, am I missing something, or has it been removed?

    Cortina is only available in the (currently unreleased) Ubuntu 12.04. However, it is broken.

  • Ok here is how I did it, which is probably not the best way to do it but it worked and I didn't have to install anything to do it. Back in 11.10 I found the below python script (slideshow.py) which generates a slideshow.xml file (run from directory with the images in it). This is still the file needed in 12.04 but you also need another XML file. Put the XML file generated by slideshow.py script in /usr/share/backgrounds/contest and chown it to root. Once that is done you'll need to run the second python script (wallpapers.py) which was adapted from the first. Put the file generated from wallpapers.py in /usr/share/gnome-background-properties and again chown it to root. At that point you should be able to go into "System Settings" -> Appearance and pick your slideshow or any of the pics in it.

    slideshow.py:

    #!/usr/bin/env python
    #coding=utf-8
    # slideshow.py
    import glob, os
    import shutil
    import time
    import Image
    
    filelist=[]
    def filelie(path):
        if os.path.isfile(path):
           wenjian=os.path.splitext(path)[1][1:]
           if wenjian=="jpg" or wenjian=="png" or wenjian=="gif":
            try:
              kuan,gao = Image.open(path).size
              if kuan>=1024 and gao>=768:
                filelist.append(path)
            except IOError:
             pass
        elif os.path.isdir(path):
            for item in os.listdir(path):
                itemsrc = os.path.join(path, item)
                filelie(itemsrc)
    
    curdir = os.getcwd()
    filelie(curdir)
    currentImageFiles = filelist
    #print filelist
    if os.path.isfile('slideshow.xml'):
     os.remove('slideshow.xml')
    
    
    currentTime = time.localtime()
    length = len(currentImageFiles)
    
    f = file('slideshow.xml', 'w')
    
    f.write('<background>\n')
    f.write('\t<starttime>\n')
    f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n')
    f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n')
    f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n')
    f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n')
    f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n')
    f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n')
    f.write('\t</starttime>\n')
    f.write('<!--This animation will start at the time it created-->\n')
    
    for i in currentImageFiles:
     length = length - 1
     f.write('\t<static>\n')
     f.write('\t\t<duration>96.0</duration>\n')
     f.write('\t\t<file>' + currentImageFiles[length] +'</file>\n')
     f.write('\t</static>\n')
     f.write('\t<transition>\n')
     f.write('\t\t<duration>3.0</duration>\n')
     f.write('\t\t<from>' + currentImageFiles[length] + '</from>\n')
     if length >= 1:
      f.write('\t\t<to>' + currentImageFiles[length-1] + '</to>\n')
     if length <1:
      f.write('\t\t<to>' + currentImageFiles[len(currentImageFiles)-1] + '</to>\n')
     f.write('\t</transition>\n')
    
    f.write('</background>\n')
    f.close()
    

    wallpapers.py:

    #!/usr/bin/env python
    #coding=utf-8
    import glob, os
    import shutil
    import time
    import Image
    
    filelist=[]
    def filelie(path):
        if os.path.isfile(path):
           wenjian=os.path.splitext(path)[1][1:]
           if wenjian=="jpg" or wenjian=="png" or wenjian=="gif":
            try:
              kuan,gao = Image.open(path).size
              if kuan>=1024 and gao>=768:
                filelist.append(path)
            except IOError:
             pass
        elif os.path.isdir(path):
            for item in os.listdir(path):
                itemsrc = os.path.join(path, item)
                filelie(itemsrc)
    
    curdir = os.getcwd()
    filelie(curdir)
    currentImageFiles = filelist
    #print filelist
    if os.path.isfile('mywallpapers.xml'):
     os.remove('mywallpapers.xml')
    
    
    currentTime = time.localtime()
    length = len(currentImageFiles)
    
    f = file('mywallpapers.xml', 'w')
    
    f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
    f.write('<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">\n')
    f.write('<wallpapers>\n')
    f.write('\t<wallpaper deleted="false">\n')
    f.write('\t\t<name>My custom Wallpapers</name>\n')
    f.write('\t\t<filename>/usr/share/backgrounds/contest/slideshow.xml</filename>\n')
    f.write('\t\t<options>zoom</options>\n')
    f.write('\t</wallpaper>\n')
    
    for i in currentImageFiles:
     length = length - 1
     f.write('\t<wallpaper>\n')
     f.write('\t\t<name>' + os.path.basename(currentImageFiles[length]) +'</name>\n')
     f.write('\t\t<filename>' + currentImageFiles[length] +'</filename>\n')
     f.write('\t\t<options>zoom</options>\n')
     f.write('\t\t<pcolor>#000000</pcolor>\n')
     f.write('\t\t<scolor>#000000</scolor>\n')
     f.write('\t\t<shade_type>solid</shade_type>\n')
     f.write('\t</wallpaper>\n')
    
    f.write('</wallpapers>\n')
    f.close()
    
  • Change it from appearance, under system settings as seen below

    enter image description here

    Or you can do so, by installing Desktop Nova. To install, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command(s) below:

    sudo apt-get install desktopnova desktopnova-tray desktopnova-module-gnome
    

    Once installed, search for it in Dash, and click on it, and when the program open, add your images, and setup the time interval.

    enter image description here

    enter image description here

    enter image description here

    Command complements of Desktopnova

    quite detailed explanation @Mitch

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM