来源:http://www.linuxidc.com/Linux/2016-09/135350.html

更原始的来源就不去找了,如果有找到的同学可以回复我我到时改过来www

来源的教程是有效的,但是打脚本的过程有点麻烦并且本身有点小错误(不知道是我看错了还是怎样),这里整理一下发上来

第一步:将壁纸拖入/usr/share/backgrounds/文件夹内

你可以选择删除原先自带的系统壁纸,并将其换为自己的壁纸。

想方便配置的话,在终端中使用命令:

sudo nautilus

来打开管理员权限下的文件管理器,将自己盘里的壁纸拖到这个文件夹里面~

第二步:用bash脚本生成mywallpapers.xml

可以使用vim,emacs,gedit等编辑器进行配置。

你需要将如下代码命名为script.sh并存入任意一个位置。

files=`ls  -u /usr/share/backgrounds | grep -v contest`
last_file='empty' echo '<background>'
echo ' <starttime>'
echo ' <year>2017</year>'
echo ' <month>9</month>'
echo ' <day>11</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
first_file=$last_file
echo ' <static>'
echo ' <duration>600.0</duration>'
echo " <file>/usr/share/backgrounds/$last_file</file>"
echo ' </static>'
else
echo ' <transition>'
echo ' <duration>3.0</duration>'
echo " <from>/usr/share/backgrounds/$last_file</from>"
echo " <to>/usr/share/backgrounds/$current_file</to>"
echo ' </transition>'
echo ' <static>'
echo ' <duration>600.0</duration>'
echo " <file>/usr/share/backgrounds/$current_file</file>"
echo ' </static>'
last_file=$current_file
fi
done echo ' <transition>'
echo ' <duration>3.0</duration>'
echo " <from>/usr/share/backgrounds/$last_file</from>"
echo " <to>/usr/share/backgrounds/$first_file</to>"
echo ' </transition>'
echo '</background>'

两个transition里的duration是指过渡时所用的时间,两个static里的duration则是指每张壁纸的播放时间,以秒为单位。上方的过渡时间默认为3秒,播放时间为10分钟,可以根据自己喜好更改。

接着使用如下命令生成xml文件:

sh script.sh > mywallpapers.xml

将生成好的文件移动到/usr/share/backgrounds/contest/目录中。

sudo mv mywallpapers.xml /usr/share/backgrounds/contest

第三步:编辑/usr/share/gnome-background-properties/xenial-wallpapers.xml

不同版本下文件名可能会有不同,所以(一般)请选择文件夹下文件名不带ubuntu的那个。这里是16.04版本下的情况。

使用编辑器打开该文件(记得加上sudo),这里以gedit为例,你也可以使用vim或emacs:

sudo gedit /usr/share/gnome-background-properties/xenial-wallpapers.xml

对该文件进行如下的编辑:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
<wallpaper deleted="false">
<name>Ubuntu 16.04 Community Wallpapers</name>
<filename>/usr/share/backgrounds/contest/xenial.xml</filename>
<options>zoom</options>
</wallpaper>
//从这里开始插入
<wallpaper deleted="false">
<name>My Wallpapers</name>
<filename>/usr/share/backgrounds/contest/mywallpapers.xml</filename>
<options>zoom</options>
</wallpaper>
//到这里结束
...
//下面不要动

保存,退出。

第四步:更改桌面壁纸。

回到桌面,右键,选择更改桌面背景:

在右侧的选项栏中,选择“壁纸”一栏,你会发现这一栏下面有两种壁纸——

当然是选择名为My Wallpapers的那个。

大功告成。

实现的原理和细节可以参考一开始的来源。

[教程]Ubuntu下完整配置自动壁纸切换的更多相关文章

  1. Ubuntu下Maven配置与Maven项目创建教程

    一. Ubuntu下Maven配置 windows下Maven配置参考http://www.cnblogs.com/LexMoon/p/JavaMaven.html ubuntu下Maven地址htt ...

  2. Opencv 2.4.9在Ubuntu下的配置与安装

    [原]Opencv 2.4.9在Ubuntu下的配置安装  Opencv 2.4.9在Ubuntu下的配置与安装 surgewong@gmail.com http://blog.csdn.net/su ...

  3. Ubuntu下MySql配置

    Ubuntu下MySql配置 安装MySQL 命令: sudo apt-get install mysql-server MySQL初始配置及管理 启动MySQL mysql start : mysq ...

  4. Ubuntu下HTTPS配置

    Ubuntu下HTTPS配置非常简单,对大部分用户而言,使用普通的自签名证书,只需按照步骤进行就可以了,无需了解密钥.证书的更多知识,更深的背景知识还有RSA算法.DES算法.X509规范.CA机构. ...

  5. 【linux基础】Ubuntu下的终端多标签切换快捷键

    method: 方法一: alt+ alt+ alt+ 方法二: ctrl + pageUp ctrl + pageDown 方法三: Edit--> Keybord Shortcuts 到这里 ...

  6. Ubuntu下Linux配置内核各种常见错误和解决办法

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 这篇把Ubuntu下Linux配置内核各种常见错误和解决办法给大家讲解一下,希望可以帮助到大家. 一.Ubuntu系统中缺少各种依赖包导致的问题 1 ...

  7. ubuntu下安装配置OpenCV

    Cmake的安装 我用的是ubuntu-software自动下载安装的. Ubuntu 下安装 OpenCV 首先下载安装相关包,然后下载OpenCV 系统:ubuntu16.04 OpenCV:2. ...

  8. ubuntu下nagios配置

    参考文献: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html http://my.oschina.net/duangr/blo ...

  9. ubuntu下安装配置minicom(解决默认的端口/dev/tty8,改不过来的问题)

    Minicom是linux下串口通信的软件,下面讲下ubuntu Minicom的安装和配置. 安装: sudo apt-get install minicom 或在新立得软件包管理器中搜索“mini ...

随机推荐

  1. Asynchronous Programming Patterns

    Asynchronous Programming Patterns The .NET Framework provides three patterns for performing asynchro ...

  2. 【postman】谷歌postman插件的基本选项含义

    1.form-data:  就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件 ...

  3. Ubuntu 安装 Telnet

    参考:在 ubuntu 上安裝 telnet service 1.安装: sudo apt-get install xinetd telnetd 2.修改inetd.conf: vim /etc/in ...

  4. SDK manager 中 Done loading packages 问题

    1.在选项栏中点击tools,选择Optons… 在弹出的设置窗口中勾选Force https://…sources to be fetched using http://… 然后点击Close 4. ...

  5. Message: dlopen failed for module ‘x’: file not found

    这是未安装bochs-x的缘故 解决方案: sudo apt-get install bochs以后接着安装bochs-x. sudo apt-get install bochs-x 2.bx_dbg ...

  6. 【Python】单元测试框架unitest及其高级应用

    Unittest Unittest是python的一个单元测试框架,但是它不仅适用于单元测试,还适用自动化测试用例的开发与执行.我们可以很方便的使用它组织执行测试用例,使用它提供的丰富的断言方法进行测 ...

  7. Tensorboard 的使用笔记

    参考的教程: https://www.tensorflow.org/guide/summaries_and_tensorboard 遇到的错误: File "/usr/local/lib/p ...

  8. angular的 表单

    一般来讲表单可能遇到的问题:1.如何数据绑定.2.验证表单.3.显示出错信息.4.整个form的验证.5.避免提交没有验证通过的表单.6.防止多系提交. input属性:nameng-modelng- ...

  9. C#MVC中@HTML中的方法

    //生成表单 @{ Html.BeginForm("Index", "Simple", FormMethod.Post, new { id = "my ...

  10. SQL 字符串拆分

    字符串拆分: ALTER FUNCTION [dbo].[f_Split](@sText nvarchar(max),@split NVARCHAR(20)) RETURNS @t TABLE (id ...