前题:感觉一张壁纸挺单一的,就想弄个可以隔几分钟就能切换的壁纸效果,于是去下载了win8的壁纸,放在了某个文件目录下。
===============================================================================================
sudo mkdir /usr/share/backgrounds/win8
然后将下载的win8的壁纸放入路径 /usr/share/backgrounds/win8 下面<当然,其他样式的壁纸也可以啦>
然后在 /usr/share/backgrounds/win8 这个目录下创建一个 python脚本程序 backgroun.py.并写入下面的代码:
1 #!/usr/bin/env python 2 #coding=utf-8 3 import glob, os 4 import shutil 5 import time 6 import Image 7 8 filelist=[] 9 def filelie(path): 10 if os.path.isfile(path): 11 wenjian=os.path.splitext(path)[1][1:] 12 if wenjian=="jpg" or wenjian=="png" or wenjian=="gif": 13 try: 14 kuan,gao = Image.open(path).size 15 if kuan>=1024 and gao>=768: 16 filelist.append(path) 17 except IOError: 18 pass 19 elif os.path.isdir(path): 20 for item in os.listdir(path): 21 itemsrc = os.path.join(path, item) 22 filelie(itemsrc) 23 24 curdir = os.getcwd() 25 filelie(curdir) 26 currentImageFiles = filelist 27 #print filelist 28 if os.path.isfile('backgroundslide.xml'): 29 os.remove('backgroundslide.xml') 30 31 32 currentTime = time.localtime() 33 length = len(currentImageFiles) 34 35 f = file('backgroundslide.xml', 'w') 36 37 f.write('<background>\n') 38 f.write('\t<starttime>\n') 39 f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n') 40 f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n') 41 f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n') 42 f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n') 43 f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n') 44 f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n') 45 f.write('\t</starttime>\n') 46 f.write('<!--This animation will start at the time it created-->\n') 47 48 for i in currentImageFiles: 49 length = length - 1 50 f.write('\t<static>\n') 51 f.write('\t\t<duration>550.0</duration>\n') 52 f.write('\t\t<file>' + currentImageFiles[length] +'</file>\n') 53 f.write('\t</static>\n') 54 f.write('\t<transition>\n') 55 f.write('\t\t<duration>5.0</duration>\n') 56 f.write('\t\t<from>' + currentImageFiles[length] + '</from>\n') 57 if length >= 1: 58 f.write('\t\t<to>' + currentImageFiles[length-1] + '</to>\n') 59 if length <1: 60 f.write('\t\t<to>' + currentImageFiles[len(currentImageFiles)-1] + '</to>\n') 61 f.write('\t</transition>\n') 62 63 f.write('</background>\n') 64 f.close()
保存,退出,给予可执行的权限,然后执行,会生成一个 backgroundslide.xml文件,这个文件是我们后面要用到的,读者也可以自己打开,其中 <static> </static>之间有个数字时间,代表的是隔多少秒就切换下一张壁纸,根据自己的爱好可以进行修改。
backgroundslide.xml文件生成后,就修改另外一处文件,如下:
1 sudo cp /usr/share/gnome-background-properties/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/ubuntu-wallpapers.xml.bak
1 sudo vim /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd"> 3 <wallpapers> 4 <wallpaper> 5 <name>Ubuntu</name> 6 <filename>/usr/share/backgrounds/contest/precise.xml</filename> 7 <options>zoom</options> 8 <pcolor>#2c001e</pcolor> 9 <scolor>#2c001e</scolor> 10 <shade_type>solid</shade_type> 11 </wallpaper> 12 </wallpapers>
将其中的<filename> </filename>之间的路径修改成backgroundslide.xml所放的路径,也就是
1 <filename>/usr/share/backgrounds/win8/backgroundslide.xml</filename>
然后,然后就OK了!
本文非原创,属于本人参考网络资源进行整合,链接如下,同时非常感谢前人的共享!
http://forum.ubuntu.com.cn/viewtopic.php?f=86&t=351410
http://www.startos.com/ubuntu/tips/2010122116687.html