一, 描述
让办公电脑桌面自动更换壁纸是一个很常见的需求, 虽然不少这方面的小软件可以实现这个功能. 事实上, 在基于 Gnome 的桌面系统中, 我们可以不需要借助任何第三方软件的帮助来让我们的桌面自动更换壁纸. 本文的方法适用于基于 Gnome 的 Linux 桌面系统, 换句话说, 就是在 Ubuntu 和 Fedora 中都可以.
在我还在用 Windows 7 系统时, 当时选择一个主题背景 (多张图组成) 后, 经常不经意间背景会换了, 循环的切换桌面壁纸; 由于 Windows 上有很多流氓软件, 容易中病毒, 经常弹窗等各种问题, 又由于我又不怎么用电脑玩游戏, 主要是做用电脑来办公, 因此果断换了自己的办公系统; 其实 Windows 用久了, 难免想把 Ubuntu 上的一些习惯带过来, 例如一些快捷键 (win +e ;win +L) 等; 这些可以自定义的, 屏保, 类 Mac 主题等, Ubuntu 上几乎一切均可自定义啊~ 正所所谓一切皆文件嘛~ 本文主要记录把桌面壁纸做成 win7 一样的自动切换; 猜对 了, 配置文件即可~ 真是方便!
前提你得下好喜欢的壁纸放在某目录下!
通过本文提供的脚本与方法生成;
配置
二, 自动切换壁纸说明
Ubuntu 16.04 系统刚安装完, 背景是很单调的, 红底~ 由于我不喜欢这里就不贴图了, 谁用谁知道~
因此我们需要自己去网上下载一些自己喜欢的壁纸, 美女也好, 动漫也好, 游戏电影 CG 也好, 自己喜欢就行. 我这里是 NASA 的太空照片, 我个人比较喜欢, 当然是高清无码的. 系统自带的壁纸都在 / usr/share/backgrounds / 目录下, 我们要把下载的壁纸也移动到这个目录子目录
- $ cd /home/san / 图片 /
- $ mkdir /usr/share/backgrounds/dongyc -p
- $ sudo mv *.jpg /usr/share/backgrounds/dongyc
如图:
自动切换壁纸主要由两个 xml 文件控制
前面介绍过, Gnome 自带自动切换壁纸的功能, 默认没有启用自动切换, 而要使用这个功能, 只需要编写和修改两个 xml 文件即可. 首先, 到 / usr/share/backgrounds / 目录中看一下, 发现其中不仅只有图片, 还有一个 contest 目录, 如下图:
在 contest 目录中, 有一个系统自带的 xenial.xml 文件, 这就是一个自动切换壁纸的配置文件. 我们可以把该文件当做范本, 来编写我们自己的配置文件. 将该配置文件打开发现其格式非常简单, 如下图:
说明:
从该配置文件可以看出, 根据壁纸所在的路径, 设定好每一张图片先保留多久(秒), 这里是 300 秒, 然后切换到另外一张图片, 切换过程经过几秒(duration 段 5 秒). 其内容非常简单, 一就看懂的那种. 但是要写一个这样的配置文件就有点难度了, 特别是图片比较多的情况下, 会累死人的, 所以我们可以写一个 Bash 脚本来自动生成一个这样的配置文件. contest 目录下的这个 xml 就是第一个 xml 文件, 也是入口文件; 先记下~Bash 脚本, 后面会讲到!
另外一个 xml 文件
另一个重要的 xml 文件位于 / usr/share/gnome-background-properties / 目录下, 如下图:
说明:
从图中可以看出 选中的部分是一个整体, 其中就包含了前面所说的第一个入口 xml 文件~
只有在这里的 xml 配置文件中提到壁纸, 才能在 Ubuntu 的系统设置界面中看到. 所以等会儿我们生成了自动切换壁纸的 xml 配置文件后, 只需要把那个配置文件的路径加到这里就行了.
生成入口 xml 文件脚本
话不多说创建 create_backup_xml.sh 脚本生成入口 xml 文件即:/usr/share/backgrounds/contest/xenial-dongyc.xml 脚本内容如下:
- #!/bin/bash
- # version 2018-12-06 by san
- files=`ls -U /usr/share/backgrounds/dongyc/|egrep -v contest`
- last_file="empty"
- echo '<background>'
- echo '<starttime>'
- echo '<year>2015</year>'
- echo '<month>12</month>'
- echo '<day>06</day>'
- echo '<hour>00</hour>'
- echo '<minute>00</minute>'
- echo '<second>00</second>'
- echo '</starttime>'
- for current_file in $files
- do
- if [[ $last_file == 'empty' ]]
- then
- last_file=$current_file
- echo '<static>'
- echo '<duration>300.0</duration>'
- echo "<file>/usr/share/backgrounds/dongyc/$last_file</file>"
- echo '</static>'
- else
- echo '<transition>'
- echo '<duration>5.0</duration>'
- echo "<from>/usr/share/backgrounds/dongyc/$last_file</from>"
- echo '<to>/usr/share/backgrounds/dongyc/$current_file</to>'
- echo '</transition>'
- echo '<static>'
- echo '<duration>300.0</duration>'
- echo "<file>/usr/share/backgrounds/dongyc/$current_file</file>"
- echo '</static>'
- last_file=$current_file
- fi
- done
- echo '</background>'
执行脚本生成 / usr/share/backgrounds/contest/xenial-dongyc.xml
- $ ./create_backup_xml.sh>xenial-dongyc.xml
- $ sudo cp xenial-dongyc.xml /usr/share/backgrounds/contest/
如图:
修改第一个入口 xml
修改入口 xml 文件如下:
- $ cd /usr/share/gnome-background-properties/
- $ cat xenial-wallpapers.xml
如图:
至此 xml 文件配置自动切换壁纸部分完成, 接下来就是应用~
修改自动切换壁纸主题
在桌面上 右击 --> 更改桌面背景(B) -- 如图:
接下来每过五分钟(300 秒) 系统桌面就会自动切换啦, 循环的, 像 win7 系统~
来源: http://www.bubuko.com/infodetail-2875247.html