Ubuntu 18.04 通过shell实现自动切换桌面壁纸-含原理

linux 到底是根据什么来自动切换壁纸的

答案就是根据一个配置文件的内容来自动切换的
首先 提权

sudo -s

然后打开 /usr/share/backgrounds/contest/xenial.xml
看一下.xml 的结构

<background>
<starttime>
......
//看来这一块是开始的时间
</starttime>
<static>
   <duration>295.0</duration>// 过多少秒 切换到下一个图片
   <file>/home/gintama/图片/myWallPapers/672182.jpg</file>
 </static>
 <transition>
    <duration>5.0</duration>//切换过程用多少秒 怎么切换
    <from>/home/gintama/图片/myWallPapers/672182.jpg</from>
    <to>/home/gintama/图片/myWallPapers/thumb-1920-672737.jpg</to>
 </transition>
</background>

OK 既然大致理解了配置xml文件了那么接下来就是如何生成这个.xml文件了
当然要使用脚本来生成了

path=//修改为自己的壁纸文件夹 的地址 可以先进入然后 pwd 来获得当前地址
files=`ls -U $path`
last_file='empty'

echo '<background>'
echo ' <starttime>'
echo '   <year>2018</year>'
echo '   <month>05</month>'
echo '   <day>08</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>297.0</duration>'
        echo "   <file>$path/$last_file</file>"
        echo ' </static>'
    else 
        echo ' <transition>'
        echo '    <duration>3.0</duration>'
        echo "    <from>$path/$last_file</from>"
        echo "    <to>$path/$current_file</to>"
        echo ' </transition>'
        echo ' <static>'
        echo '   <duration>297.0</duration>'
        echo "   <file>$path/$current_file</file>"
        echo ' </static>'
        last_file=$current_file 
    fi
done

echo '</background>'

大佬写的代码 就学习一下了
接下来就是运行脚本生产 .xml 配置文件

// 提权
chmod 755 background.sh 
// 使用输出重定向 生成 .xml
./ background.sh > background.xml

第二步

告诉系统你自定义的壁纸配置

然后用root权限打开 /usr/share/gnome-background-properties/bionic-wallpapers.xml
写入一个节点
其中filename 的内容为你的background.xml的地址

 <wallpaper deleted="false">
   <name>mybackground</name>
   <filename>/usr/share/backgrounds/contest/mybackground.xml</filename>
   <options>zoom</options>
 </wallpaper>

OK 至此就完成了配置操作

如何选择呢

在这里插入图片描述

直接选择其中右下角有个小表图标的图片
就完成自动切换壁纸的设置了

猜你喜欢

转载自blog.csdn.net/weixin_39722329/article/details/85076651