自己动手写Python实现Ubuntu自动切换壁纸
2011-08-09 11:35
253 查看
使用Windows7一段时间,觉得它的自动换壁纸也挺好用的,换到Ubuntu 11.04上,本想装个软件让它自动换,后来发现Drapes运行不了,又懒得装其他软件了。
于是想按照别人说的写个shell自动换壁纸,但是因为偶没怎么接触过shell编程,所以就求助于python了。
Ubuntu原本就可以支持自动换壁纸,我们在外观首选项下的背景项可以看到原本就有个宇宙的幻灯片。这个幻灯片主要靠xml定义,位于/usr/share/backgrounds/cosmos/下的background-1.xml,我们打开它可以看到:
这个是设置幻灯片开始时间,只要设为过去或者现在就可以马上开始了。
于是下面就有很多类是这样的:
static标签下的duration是设置一张图保持多久,transition同理,两者加起来就是一张图显示的时间了,1795 + 5 = 1800秒,即 30 分钟。
然后如果要循环播放的话,最后一个transtion要跳回第一个即可。虽然我们可以手写这个xml,但是实在太恶心了。
所以我们求助于python自动生成了。
将这个py文件放到图片的目录下,保存为back.py,然后在shell里运行:python back.py,随后会生成以这个目录命名的xml文件,我们就打开外观首选项,添加刚刚生成的xml即可。
自己动手,丰衣足食~
于是想按照别人说的写个shell自动换壁纸,但是因为偶没怎么接触过shell编程,所以就求助于python了。
Ubuntu原本就可以支持自动换壁纸,我们在外观首选项下的背景项可以看到原本就有个宇宙的幻灯片。这个幻灯片主要靠xml定义,位于/usr/share/backgrounds/cosmos/下的background-1.xml,我们打开它可以看到:
<starttime> <year>2009</year> <month>08</month> <day>04</day> <hour>00</hour> <minute>00</minute> <second>00</second> </starttime>
这个是设置幻灯片开始时间,只要设为过去或者现在就可以马上开始了。
于是下面就有很多类是这样的:
<static> <duration>1795.0</duration> <file>/usr/share/backgrounds/cosmos/cloud.jpg</file> </static> <transition> <duration>5.0</duration> <from>/usr/share/backgrounds/cosmos/cloud.jpg</from> <to>/usr/share/backgrounds/cosmos/comet.jpg</to> </transition> <static> <duration>1795.0</duration> <file>/usr/share/backgrounds/cosmos/comet.jpg</file> </static> <transition> <duration>5.0</duration> <from>/usr/share/backgrounds/cosmos/comet.jpg</from> <to>/usr/share/backgrounds/cosmos/earth-horizon.jpg</to> </transition>
static标签下的duration是设置一张图保持多久,transition同理,两者加起来就是一张图显示的时间了,1795 + 5 = 1800秒,即 30 分钟。
然后如果要循环播放的话,最后一个transtion要跳回第一个即可。虽然我们可以手写这个xml,但是实在太恶心了。
所以我们求助于python自动生成了。
# -*-coding:utf-8-*- # 作者:华亮 import os xml = ''' <background> <starttime> <year>2009</year> <month>08</month> <day>04</day> <hour>00</hour> <minute>00</minute> <second>00</second> </starttime> ''' static_duration = 1795 # 一张壁纸的停留时间 trasition_duration = 5 # 切换时间 def CreateStatic(duration, file): return '<static>\n\t<duration>' + str(duration) + '</duration>\n\t<file>' + str(file) + '</file>\n</static>\n' def CreateTransition(duration, fromFile, toFile): return '<transition>\n\t<duration>' + str(duration) + '</duration>\n\t<from>' + str(fromFile) + '</from>\n\t<to>' + str(toFile) + '</to>\n</transition>\n' # 读取当前目录下所有文件 images = [] for filename in os.listdir(os.getcwd()): root, ext = os.path.splitext(filename) if ext.lower() == '.bmp' or '.jpg' or '.png': images.append(os.path.join(os.getcwd(), filename)) # 生成XML for i in range(len(images) - 1): xml += CreateStatic(static_duration, images[i]) + CreateTransition(trasition_duration, images[i], images[i + 1]) xml += CreateStatic(static_duration, images[len(images) - 1]) + CreateTransition(trasition_duration, images[len(images) - 1], images[0]) + '</background>' # 保存文件 file = open(os.path.basename(os.getcwd()) + ".xml", 'w') file.write(xml) file.close()
将这个py文件放到图片的目录下,保存为back.py,然后在shell里运行:python back.py,随后会生成以这个目录命名的xml文件,我们就打开外观首选项,添加刚刚生成的xml即可。
自己动手,丰衣足食~
相关文章推荐
- 自己动手制作liveusb,并实现自动部署ubuntu14.04
- 在ubuntu中cosmos动态壁纸的python实现脚本
- 生成ubuntu自动切换壁纸xml文件的php代码
- ubuntu 16.04 实现自动换壁纸 幻灯片
- 用php写的生成ubuntu自动切换壁纸xml文件
- 基于Python实现Windows下壁纸切换功能
- Ubuntu 设定壁纸自动切换的shell脚本
- python 实现桌面壁纸自动更换
- Ubuntu 配置VIM支持Python 完成YCM的安装实现自动补齐的功能
- 让你的电脑多个桌面壁纸自动智能切换不用任何软件实现
- ubuntu 16.04LTS 开机启动自动更换壁纸的实现方法
- 自己动手制作jquery插件之自动添加删除行的实现
- Gnome3(Ubuntu)壁纸自动切换
- #自己动手写脚本#python实现批量写入syscon
- 自己动手实现山东大学QLSC_STU无线网络掉线后自动重连
- ubuntu壁纸自动切换
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- Python3实现Win10桌面背景自动切换
- micropython之动手搭建自己的MQTT服务器并实现通信(点亮led)
- Ubuntu 设定壁纸自动切换的shell脚本