使用Windows 7一段时间,觉得它的自动换壁纸也挺好用的,换到Ubuntu 11.04上,本想装个软件让它自动换,后来发现Drapes运行不了,又懒得装其他软件了。

于是想按照别人说的写个shell自动换壁纸,但是因为偶没怎么接触过shell编程,所以就求助于Python了。

Ubuntu原本就可以支持自动换壁纸,我们在外观首选项下的背景项可以看到原本就有个宇宙的幻灯片。这个幻灯片主要靠xml定义,位于/usr/share/backgrounds/cosmos/下的background-1.xml,我们打开它可以看到:

2009

08

04

00

00

00

这个是设置幻灯片开始时间,只要设为过去或者现在就可以马上开始了。

于是下面就有很多类是这样的:

1795.0

/usr/share/backgrounds/cosmos/cloud.jpg

5.0

/usr/share/backgrounds/cosmos/cloud.jpg

/usr/share/backgrounds/cosmos/comet.jpg

1795.0

/usr/share/backgrounds/cosmos/comet.jpg

5.0

/usr/share/backgrounds/cosmos/comet.jpg

/usr/share/backgrounds/cosmos/earth-horizon.jpg

static标签下的duration是设置一张图保持多久,transition同理,两者加起来就是一张图显示的时间了,1795 + 5 = 1800秒,即 30 分钟。

然后如果要循环播放的话,最后一个transtion要跳回第一个即可。虽然我们可以手写这个xml,但是实在太恶心了。

所以我们求助于python自动生成了。

# -*-coding:utf-8-*-

# 作者:华亮

importos

xml ='''''

2009

08

04

00

00

00

'''

static_duration =1795# 一张壁纸的停留时间

trasition_duration =5# 切换时间www.linuxidc.com

defCreateStatic(duration, file):

return'\n\t'+ str(duration) +'\n\t'+ str(file) +'\n\n'

defCreateTransition(duration, fromFile, toFile):

return'\n\t'+ str(duration) +'\n\t'+ str(fromFile) +'\n\t'+ str(toFile) +'\n\n'

# 读取当前目录下所有文件

images = []

forfilenameinos.listdir(os.getcwd()):

root, ext = os.path.splitext(filename)

ifext.lower() =='.bmp'or'.jpg'or'.png':

images.append(os.path.join(os.getcwd(), filename))

# 生成XML

foriinrange(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]) +''

# 保存文件

file = open(os.path.basename(os.getcwd()) +".xml",'w')

file.write(xml)

file.close()

将这个py文件放到图片的目录下,保存为back.py,然后在shell里运行:python back.py,随后会生成以这个目录命名的xml文件,我们就打开外观首选项,添加刚刚生成的xml即可。

自己动手,丰衣足食~

python自制linux桌面,自己动手写Python实现Ubuntu自动切换壁纸相关推荐

  1. Python模拟Linux的Crontab, 写个任务计划需求

    Python模拟Linux的Crontab, 写个任务计划需求 来具体点 需求:执行一个程序, 程序一直是运行状态, 这里假设是一个函数当程序运行30s的时候, 需要终止程序, 可以用python, ...

  2. 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档...

    孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...

  3. 代写python期末作业价格_代写program留学生作业、代做Python程序语言作业、代写Python课程设计作业...

    代写program留学生作业.代做Python程序语言作业.代写Python课程设计作业 日期:2019-11-29 12:55 Completing the Final Project - Pyth ...

  4. Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题

    Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题 参考文章: (1)Linux 桌面玩家指南:17. 在 Ubuntu 中使 ...

  5. python开发linux桌面应用_Linux程序员宝典:2020年10款出色的Python IDE!

    Python是一种通用编程语言,可用于构建一切:从后端Web开发.数据分析.人工智能到科学计算,不一而足.它还可以用于开发生产力软件.游戏.桌面应用及其他软件. Python简单易学,语法和缩进结构简 ...

  6. python软件界面-用Html来写Python桌面软件的UI界面-htmlPy

    在写Python软件的时候,一般用命令行就行了,但是某些特殊情况下(主管要求),需要写一个还能看的界面提供给客户的情况下,那就必须要用到Python的UI包. 试用了很多种: 因为一直用的Python ...

  7. python输入代码界面通常_vscode写python时的代码错误提醒和自动格式化的方法

    python的代码错误检查通常用pep8.pylint和flake8,自动格式化代码通常用autopep8.yapf.black.这些工具均可以利用pip进行安装,这里介绍传统的利用pip.exe安装 ...

  8. python怎么创建配置文件_如何写python的配置文件

    一.创建配置文件 在D盘建立一个配置文件,名字为:test.ini 内容如下: [baseconf] host=127.0.0.1 port=3306 user=root password=root ...

  9. linux与python客户端,LINUX平台下DM7与Python的适配

    1.概述 dmPython是DM提供的依据Python DB API version 2.0中API使用规定而开发的数据库访问接口.dmPython 实现这些API,使Python应用程序能够对DM数 ...

最新文章

  1. 基于vue-cli,做个nuxt脚手架~
  2. python【力扣LeetCode算法题库】101-对称二叉树
  3. java后期发展方向_2020年前3季度工程自卸车市场咋样?后期朝啥方向发展?
  4. antd的 input有下拉_antd select下拉添加全选的按钮
  5. 【总结】C++逻辑与或
  6. 进程环境之命令行参数
  7. 写一篇Hook Driver.
  8. 在vpc 2007上安装 ubuntu8.04-desktop(多图解)(转)
  9. 网络营销数据解读(九)——客户族群细分(Segmentation)2-2
  10. html实现验证码效果,html5使用canva实现验证码效果(代码实例)
  11. java红包正态分布,微信红包算法探讨
  12. Android使用Volley框架显示“Cleartext HTTP traffic to XXX not permitted”的解决方法
  13. java金额大小写转换 数字大小写转换
  14. “概率模型与计算机视觉” 林达华
  15. LearnOpenGL学习笔记——法线贴图
  16. VUCA时代下,如何有效提高项目成功率?
  17. c语言 函数 引用调用,C 引用方式调用函数
  18. 陌陌注册了新公司,要开卖人工智能硬件了?
  19. 暴君专栏和谐按钮_质量工具:卑微的仆人还是暴君?
  20. you belong with me(你属于我)

热门文章

  1. 2010年4月2日 晴
  2. unity3D---插件obi Rope---实现绳子效果
  3. TI高精度实验室-运算放大器-第十六节-全差分放大器
  4. Symbolic Graph Reasoning Meets Convolutions 符号图推理与卷积结合的方式
  5. 将两条类似的sql合并
  6. 【临床预测模型】----选择合适的统计模型
  7. 解决log4j2子线程无法获取到traceId问题
  8. Linux 安装python 3.8(Linux 的版本为 Centos 7)
  9. 年底了,该对自己说说总结的话了
  10. 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析