引言

  让我们的桌面系统自动更换壁纸是一个很常见的美化需求,而且确实也存在着不少这方面的小软件可以实现这个功能。事实上,在基于 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发布于博客园,转载请注明出处。)

让 Ubuntu 桌面自动更换壁纸的更多相关文章

  1. linux设置自动更换壁纸

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

  2. 【壁纸自动换】自动下载、更换壁纸(Bing壁纸)--XinBSBingWallPaper[2.7更新]

    XinBSBingWallPaper主要功能: 1.支持自动下载Bing壁纸.Netbian壁纸.美国国家地理杂志图片. 2.自动搜索.下载多国Bing首页壁纸. 3.支持定时自动更换桌面壁纸. 4. ...

  3. Win10家庭版设置桌面右键更换桌面壁纸

    Win10家庭版设置桌面右键更换桌面壁纸.. ------------------------- 这是设置之前的右键快捷菜单.. ------------------------- 开始设置:右键桌面 ...

  4. ubuntu桌面安装常用软件&及常见问题

    自己从windows转向ubuntu桌面开发,根据需求安装以下文件: ubuntu 桌面版下载:http://www.ubuntu.org.cn/download/desktop 有的公司设置静态ip ...

  5. Zedboard学习(一):移植Ubuntu桌面操作系统 标签: ubuntu移植zedboardFPGA 2017-07-04 21:53 26人阅读

    环境准备: 首先,需要的肯定是Ubuntu操作系统.可以在自己的电脑上安装物理机,也可以是虚拟机下运行的.我的是在Vmware下运行的Ubuntu14.04 32位操作系统. 由于zedboard上的 ...

  6. Ubuntu启动自动登录并启动程序

    最近在研究Ubuntu,需要在系统启动之后自动登录,并且启动某个程序. 手上拿到的系统只有一个空桌面,其他嘛也没有,鼠标右键也不管用.于是借助自己的虚拟机研究发现,自动启动程序配置文件在: /home ...

  7. Manjaro18+kde 更换壁纸重启失效

    更换壁纸 ​ 在kde的桌面右键->配置桌面 壁纸里更换壁纸,我不能直接添加图像并应用.我的系统在这样操作后重启就会发现一切都被重置了.刚刚添加的图片也不见了. ​ 于是,我就模范原本存在壁纸文 ...

  8. Ubuntu 桌面版使用总结

    最近拿出了大学时买的性(游)能(戏)本(机),其实从直观来看,硬件基础还是不错的,但是跑 WIN10, 清了各种广告,关了各种无效进城之后,用起来仍然还是很不爽.可能是已经用惯 mac 了吧,mac给 ...

  9. 【转】ubuntu vpn自动切换路由

    需要的工作有以下三項 Ubuntu Network Manager Client (nmcli)用來建立VPN連線的工具其實在UBUNTU在桌面上就有VPN連線可以用, 為什麼我們還要這麼大費周章的用 ...

随机推荐

  1. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  2. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

  3. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

  4. jQuery动画-圣诞节礼物

    ▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...

  5. SDWebImage源码解读之SDWebImageCache(上)

    第五篇 前言 本篇主要讲解图片缓存类的知识,虽然只涉及了图片方面的缓存的设计,但思想同样适用于别的方面的设计.在架构上来说,缓存算是存储设计的一部分.我们把各种不同的存储内容按照功能进行切割后,图片缓 ...

  6. python 数据类型 ---文件一

    1.文件的操作流程: 打开(open), 操作(read,write), 关闭(close) 下面分别用三种方式打开文件,r,w,a 模式 . "a"模式将不会覆盖原来的文件内容, ...

  7. PHP设计模式(四)单例模式(Singleton For PHP)

    今天讲单例设计模式,这种设计模式和工厂模式一样,用的非常非常多,同时单例模式比较容易的一种设计模式. 一.什么是单例设计模式 单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对 ...

  8. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  9. 初识JavaScript

    JavaScript ECMA-262: 变量,函数,对象,数据类型....唯独没有输入和输出. Javascript:包含 ECMA-262,核心 BOM 浏览器对象模型, DOM 文档对象模型 什 ...

  10. Dynamics CRM 2015-Data Encryption激活报错

    在CRM的日常开发中,Data Encryption经常是不得不开启的一个功能.但是有时,我们可能遇到一种情况,Organization导入之后,查看Data Encryption是已激活的状态,但是 ...