让 Ubuntu 桌面自动更换壁纸

Posted on 2016-07-10 22:56 京山游侠 阅读(4256) 评论(10) 编辑 收藏

引言

  让我们的桌面系统自动更换壁纸是一个很常见的美化需求,而且确实也存在着不少这方面的小软件可以实现这个功能。事实上,在基于 Gnome 的桌面系统中,我们可以不需要借助任何第三方软件的帮助来让我们的桌面自动更换壁纸。我这里所写的方法,适用于基于 Gnome 的 Linux 桌面系统,换句话说,就是在 Ubuntu 和 Fedora 中都可以。其实这一篇应该放在 Linux 桌面系统美化中一起论述,单独成篇有点小题大做了。雕虫小技,放到博客园首页希望大家不要介意。

一、下载自己喜欢的壁纸

  刚安装完成的 ubuntu 系统,其桌面是非常单调的,如下图:

  所以我们需要自己去网上下载一些自己喜欢的壁纸,美女也好,动漫也好,游戏电影 CG 也好,自己喜欢就行。当然是要高清无码的。刚下载后的图片都在主目录下的下载目录中,而我们系统自带的壁纸都在/usr/share/backgrounds/目录下,我们要把下载的壁纸也移动到这个目录中去。因为访问权限的原因,需要使用sudo mv命令,如下图:

二、自动切换壁纸功能主要由两个 XML 文件控制

  前面已经说过,Gnome 自带自动切换壁纸的功能,而要使用这个功能,只需要编写和修改两个 XML 文件即可。首先,到/usr/share/backgrounds/目录中看一下,发现其中不仅只有图片,还有一个contest目录,如下图:

  在contest目录中,有一个系统自带的xenial.xml文件,这就是一个自动切换壁纸的配置文件。我们可以把该文件当做范本,来编写我们自己的配置文件。将该配置文件打开看一下,发现其格式非常简单,如下图:

  从该配置文件可以看出,只需要根据壁纸所在的路径,设定好每一张图片先保留多少秒,然后切换到另外一张图片,切换过程经过几秒。其内容非常简单,一下子就看懂了。但是要写一个这样的配置文件就有点难度了,特别是图片比较多的情况下,一个一个的输入图片的路径会累死人的,所以我们可以写一个 Bash 脚本来自动生成一个这样的配置文件。怎么写 Bash 脚本,后面会讲到。

  另外一个 XML 文件位于/usr/share/gnome-background-properties/目录下,如下两图:

  只有在这里的 XML 配置文件中提到壁纸,才能在 Ubuntu 的系统设置界面中看到。所以等会儿我们生成了自动切换壁纸的 XML 配置文件后,只需要把那个配置文件的路径加到这里就行了。下图是系统设置中关于壁纸设置的界面,可以看到,既可以选择单独的壁纸图片,也可以选择某个自动切换壁纸的配置:

三、编写 Bash 脚本自动生成第一个 XML 配置文件

  前面说过,如果自己写配置文件,光输入每个图片的路径这件事就可以让人发疯。好在我们有 Bash 脚本可以干这件事儿,这个 Bash 脚本非常简单,使用ls命令自动获得所有图片的路径后,然后用一个循环自动生成 XML 文件的内容即可,如下图:

  然后,使用下图中的几个命令,生成mywallpapers.xml文件,并把它转移到/usr/share/backgrounds/contest/目录下,如下图:

四、手动修改第二个 XML 配置文件

  对于前面提到的第二个配置文件,只需要添加或者修改一行即可,所以可以手动进行。很简单,我们只需要把刚刚生成的/usr/share/backgrounds/contest/mywallpapers.xml添加进去即可,如下图:

五、在系统设置中设置壁纸

  这一步太简单了,在系统设置中找到我们编写的那个可以自动切换的配置即可,如下图:

  大功告成。从上面的图片可以看出,我的壁纸切换比较快,每 5 分钟就换一张。然后,就可以打开一个半透明的控制台,一边编程,一边享受背景的自动切换了。干完自动切换壁纸的事,我接着就去尝试最新的 .Net Core 1.0 了。给个桌面大家欣赏一下,如下图:

(京山游侠于2016-07-10发布于博客园,转载请注明出处。)

#!/bin/bashecho "<background><starttime><year>2009</year><month>08</month><day>04</day><hour>00</hour><minute>00</minute><second>00</second></starttime>
<!-- This animation will start at midnight. -->"
a=(`ls -d /usr/share/backgrounds/*`)
num=$[${#a[@]}-1]
for i in `seq 0 $num`;do[ $i != 0 ] && echo "    <to>${a[$i]}</to></transition>"echo "  <static><duration>1795.0</duration><file>${a[$i]}</file></static><transition><duration>5.0</duration><from>${a[$i]}</from>"
done
echo "    <to>${a[0]}</to></transition>
</background>"
exit 0

让 Ubuntu 桌面自动更换壁纸相关推荐

  1. python修改桌面壁纸_利用Python对windows桌面自动更换壁纸

    根据时间星期几判断用哪张壁纸 # !/usr/bin/env python3 # -*- coding:utf-8 -*- import requests # import pywintypes im ...

  2. Ubuntu桌面自动切换壁纸(不用写脚本和xml配置文件)

    打开自带的Shotwell软件 文件–>从文件夹导入–>把导入的图片全部选中–>文件–>设为桌面幻灯片–>选择切换时间间隔–>确定 开始享受自己找的精美壁纸,专心工 ...

  3. ubuntu桌面_Ubuntu桌面自动更换bing每日壁纸

    虽然我有3块显示屏幕,一般很少返回桌面,但还是掩不住ubuntu桌面单调的事实.Windows store有一个dynamic theme应用,可以自动抓取bing每日壁纸,并设置为桌面壁纸.简单搜了 ...

  4. ubuntu进入桌面自动启动脚本_ubuntu 16.04LTS 开机启动自动更换壁纸的实现方法

    前言 上周电脑重装,换了ubuntu 16.04,想起来之前上课老师也是ubuntu而且他还提到他桌面是他自己写的个小脚本实现的自动更换桌面壁纸的,昨天晚上心血来潮自己网上搜了点资料实现了一下 = = ...

  5. Ubuntu 14.04自动更换壁纸

    Ubuntu 14.04自动更换壁纸 最近用ubuntu14.04,想添加一些自己拍的图片作为壁纸,并且让它自动更换. 查网上教程,知道其实背景图片是在文件夹/usr/share/background ...

  6. 【Ubuntu】自动更换添加倒计时的壁纸

    [Ubuntu]自动更换添加倒计时的壁纸 目录 环境 主要功能介绍 说明 代码实现 自动启动 附图 参考 环境 Ubuntu20.04.2 LTS python3 主要功能介绍 取一张/多张基础图片, ...

  7. linux 壁纸自动更换,使用LSWC在Linux中自动更换壁纸

    本文将为你介绍安装及使用LittleSimpleWallpaperChanger(LSWC)小脚本为你的Linux桌面定期自动更换壁纸.如果你不再使用LSWC,还可以使用本文介绍的删除方法处理. 其实 ...

  8. android 自动更换壁纸,安卓壁纸如何设置自动更换壁纸-手机天堂

    安卓壁纸是一款非常实用的手机壁纸更换软件,平台中有非常丰富的静态壁纸和视频动态壁纸,可以说是每天换一张都不会重样的,这就让手机变的更加的丰富多彩.相信有不少的朋友会认为老使用一张壁纸太单调,每天都换成 ...

  9. linux设置自动更换壁纸

    #!/bin/bash let n=0 files=($HOME/wallpapers/*.jpg) count=${#files[@]} while [ 1 ] dolet "n=n%$c ...

最新文章

  1. Java 代码细节与优化(一)
  2. Burpsuite学习(2)
  3. occ-backend-base-url 的相关代码,如何调试?
  4. python语言程序设计计算机二级难不难_全国计算机二级的难度有多大?
  5. ActionScript 3.0 学习笔记三
  6. 大数据业务学习笔记_学习业务成为一名出色的数据科学家
  7. 如何使用Countifs函数动态统计
  8. android应用开发(25)---进程和应用程序生命周期
  9. careercup-递归和动态规划 9.10
  10. 静默授权获取unionid_Asp.Net Core 中IdentityServer4 授权中心之自定义授权
  11. 第八篇:ZTree操作总结
  12. maven配置私服信息
  13. 解决Chrome插件安装时出现的 “CRX_HEADER_INVALID” (程序包无效) 问题
  14. 刺客信条3一直显示育碧服务器,刺客信条3免Uplay启动游戏的方法
  15. 常用网线T568A或T568B类型详细讲解
  16. 【云原生之Docker实战】使用Docker部署Wizard文档管理系统
  17. DOTA数据集应用于Yolo-v4(-Tiny)系列2——使用Pytorch框架的Yolov4(-Tiny)训练与推测
  18. Android图片加载优化方案
  19. Android 键盘属性
  20. [数据结构] UVa1471 Defense Lines 防线

热门文章

  1. windows系统下redis安装以及设置redis开机自启动方法教程
  2. Hibernate高级映射技术(一)自定义数据类型StringList (转)
  3. html5图片上传与预览实现
  4. Mac无法找到摄像头问题解决
  5. 【起航计划 001】2015 起航计划 踏在起跑线上
  6. 【关于打印errno]
  7. Python中拼音库PyPinyin
  8. 【Linux】kali破解密码
  9. RabbitMQ 超详细入门篇
  10. 毕业设计 - 题目:垃圾邮件(短信)分类 算法实现 机器学习 深度学习 开题