Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I spent some time and tried various things but nothing works. Here's what I have tried so far (changing the slideshow manually):

  1. Making a new folder /usr/share/backgrounds/mywallpapers and add my own background-1.xml in there.
  2. Copying a bunch of my own wallpaper files into /usr/share/backgrounds/
  3. Copy /usr/share/backgrounds/Contest/background-1.xml to /usr/share/backgrounds/

I logged out and in and still no changes in Appearance app.

I have heard about Wallch but I don't want some app running in the background all the time. I'm not even sure Wallch will work with Gnome 3. I also tried gnome-3-wp (Gnome 3 Wallpaper Slideshow app) but it just seems broken for Ubuntu 11.10 Oneiric.

Anyone has a solution?

share|improve this question
    
Have you seen this question and answer? askubuntu.com/questions/134/… –  fossfreedom Oct 23 '11 at 13:31
    
@fossfreedom yes and as I said I would prefer to not having an app running all the time(referring to Wallch) just to have such a simple functionality. And gnome-3-wp is just broken under Oneiric –  Pithikos Oct 23 '11 at 13:41
    
OP, there are several workable solutions here. Please mark one as the answer. –  Koveras May 12 '13 at 6:07
    
I don't have the time at the moment to try any of the solutions, thus I can't judge them. –  Pithikos May 17 '13 at 9:50
add comment

8 Answers 8

I think I'm late but...

I created an xml background (with full paths descriptions), and I've saved it at /usr/share/backgrounds/my-background.xml

then I edited /usr/share/gnome-background-properties/ubuntu-wallpapers.xml adding

<wallpaper deleted="false">
 <name>My background</name>
 <filename>/usr/share/backgrounds/my-background.xml</filename>
 <options>zoom</options>
</wallpaper> 

just saves the file and the new slideshow wallpaper is shown in appearences window

hope it works for you :D

share|improve this answer
    
Also, relevant to those using Gnome 3.10 on Fedora 20. –  Ryan Dec 18 '13 at 20:46
add comment

Also, when editing /usr/share/gnome-background-properties/ubuntu-wallpapers.xml, ommiting the options tags altogether will allow you to choose to either tile, zoom, center, scale, fill or span in the Appearance GUI in Settings.

Example using Locutus's example above:

<wallpaper deleted="false">
 <name>My background</name>
 <filename>/usr/share/backgrounds/my-background.xml</filename>
</wallpaper>
share|improve this answer
    
Also, relevant to those using Gnome 3.10 on Fedora 20. –  Ryan Dec 18 '13 at 20:45
add comment

I use the following script I wrote and launch it using the gnome 'Startup Applications' launcher. To improved system performance the script suspends the slideshow while XMBC or VLC is running or the system load exceeds the specified threshold.

Save the script to a file and chmod +x to make it self executing.

wallpaper-slideshow.sh

#!/usr/bin/python

import os
import random
import time
import re
import subprocess

# directory where Pictures are stored
pictureDirectory = os.getenv("HOME") + "/.xbmc/userdata/Thumbnails/Video/Fanart"

# time in seconds to wait between transitions 
duration=60

# maximum system load before the slideshow is suspended
maxSysLoad=0.5

def getPictureList():
    result = []
    for root, sub, files in os.walk(pictureDirectory): 
        for f in files:
            if f.endswith(('.jpeg','.jpg','png','.tbn')):
                result.append(os.path.join(root, f))               
    return result


def getSystemLoad():
    uptimeString = subprocess.check_output(["uptime"])
    return float(re.match(r".*load average: ([^,]+),.*", uptimeString).group(1))

def isProcRunning(name):
    with open(os.devnull, "w") as devnull:
        return subprocess.call(["pidof", name], stdout=devnull) == 0

def setDesktopBackgroundPicture(filename):
    return subprocess.call(["gsettings", "set", 
        "org.gnome.desktop.background", 
        "picture-uri", '"file://' + filename + '"'])

def main():
    time.sleep(10) # startup delay    
    pictureList = getPictureList() 
    while 1:       
        if getSystemLoad() > maxSysLoad or isProcRunning("vlc") or isProcRunning("xbmc.bin") :
            print "slide show suspended while VLC or XMBC is running or system load is high"
        else:
            picture = random.choice(pictureList)
            print picture
            setDesktopBackgroundPicture(picture)

        time.sleep(duration)

if __name__ == "__main__":
    main()        
share|improve this answer
add comment

Ok so a small workaround after some further experimenting is that you can edit /usr/share/background-1.xml as root.

You change the line under

<!-- This animation will start at midnight. -->

and replace the picture sources so that they correspond to your fotos like this.

<static>
  <duration>1795.0</duration>
  <file>/home/manos/futuristicHD/2907.jpg</file> <!-- first wallpaper -->
</static>
<transition>
  <duration>5.0</duration>
  <from>/home/manos/futuristicHD/2907.jpg</from> <!-- first wallpaper -->
  <to>/home/manos/futuristicHD/62977.jpg</to>    <!-- second wallpaper -->
</transition>

There are two things to pay attention to:

  1. Only full paths work.
  2. The last <to>path/lastfoto.jpg</to> line in the whole xml file must correspond to the first <file>path/firstfoto.jpg</file> line in the xml file.
share|improve this answer
add comment

The key here is to point Gnome to the location of your XML slideshow file. From some reason, this option isn't available in dconf-editor, but you can use gsettings to get and set it. (Ref: ArchWiki):

To read the current setting:

GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri

To set the new slideshow:

GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///home/username/path/to/your/slideshow.xml'

Maybe you have created an XML slideshow previously, or you can use this script.

I can recommend Crebs, which unfortunately isn't available for Ubuntu 11.10 through PPA, but you can download and install the package for Natty (which is a little bit risky), or use the source package - once extracted, you don't have to install anything, just run the script crebs/bin/crebs script (note that Crebs may have some dependencies, run the script from terminal to find out).

Once you create and save Crebs slideshow you like, the resulting XML is saved to ~/.crebs/ directory - as mentioned above, just run:

GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file://$HOME/.crebs/MySuperCoolSlideshow.xml"

(remember to change the file name) and the slideshow will be instantly applied.

share|improve this answer
add comment

I'm really late to this post, but seeing that there is no accepted answer yet, I will post my own.

There's an easy way to create a separate wallpaper slideshow by adding another XML file to /usr/share/backgrounds/.

Download the XML background creator, extract it into your home directory. Then run install.sh. This will create a new Nautilus script which you can use to create your wallpaper slideshow. You can try to make your own XML file, but frankly, this is a lot easier.

Now load all the images you want into a folder (preferably /usr/share/backgrounds/foler_name_here, since you can't move the images anywhere else once you have created the XML). Navigate to that folder in Nautilus, right-click, go to "Scripts", and select "XML background creator". Now choose the settings you want, and a new XML file should appear.

Now you need to make some changes so that the Appearances dialogue will recognize your new slideshow.

sudo gedit /usr/share/gnome-background-properties/ubuntu-wallpapers.xml

Now add this somewhere:

<wallpaper deleted="false">
     <name>name_of_slideshow</name>
     <filename>path_to_your_XML.xml</filename>
     <options>zoom</options>
</wallpaper>

Be sure to replace "path_to_your_XML.xml" with your the actual path.

Now, if you open the "Appearance" settings again, you should see your own slideshow along with the others.

share|improve this answer
add comment

You can go to terminal and type

wallch -h

There is an option to make it run in the background.

Wallch options

  -h or --help Show help options.
  --earth      Starts live earth wallpaper, updating every 30 minutes.
  --once       Change desktop background once by picking randomly an image from the list.
  --constant   Starts changing randomly pictures from the list, without opening the Wallch GUI.

Notes

--once and --constant will only work if you have at least 2 images in the list.
--earth will only work if you have Internet connection.

Not sure if this helps, but yeah :)

I usually do

wallch --constant

then I Ctrl+Z to stop it and get back into terminal, then I type bg to send the process to the background so it keeps running.

share|improve this answer
add comment

Check out this forum post.

I think it's exactly what you want. Your custom background will be added to the 'change wallpaper background if you follow instructions, and run the script.

It helped me out lots!

share|improve this answer
    
Please add some of your answer here not only the link incase the link goes down you'll answer will be useless os please improve your answer –  user61928 Oct 12 '12 at 5:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.