Ok voici comment j'ai fait, qui n'est probablement pas la meilleure façon de le faire, mais cela a fonctionné et je n'ai pas eu à installer quoi que ce soit pour le faire. En 11.10, j'ai trouvé le script Python ci-dessous ( slideshow.py
) qui génère un slideshow.xml
(exécuté à partir du répertoire contenant les images). C'est toujours le fichier nécessaire dans 12.04 mais vous avez également besoin d'un autre fichier XML. Mettez le fichier XML généré par slideshow.py
script en /usr/share/backgrounds/contest
y chown
il à root
. Une fois cela fait, vous devrez exécuter le deuxième script Python ( wallpapers.py
) qui a été adapté du premier. Mettez le fichier généré par wallpapers.py
sur /usr/share/gnome-background-properties
et encore chown
pour l'enraciner. À ce stade, vous devriez être en mesure d'aller dans "Paramètres du système" -> Apparence et de choisir votre diaporama ou l'une des images qu'il contient.
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()