ubuntu12.04gnome桌面下定时切换桌面脚本 Sk8er

最近研究了一下shell,就突发奇想,可不可以弄一个类似window7那种可以自动切换桌面图片的脚本呢?

理论上是可以的,关键是找到gnome桌面的背景切换命令,

上网搜了搜,还真让我找到了!

”gsettings set org.gnome.desktop.background picture-uri '图片路径'"就可以设置背景了

还有一个头疼的问题就是如何支持带空格参数的图片路径,目前只找到了一种方法,还是我太菜了,呵呵,如果哪位看官有更好的解决方法欢迎赐教哈,上代码

#!/bin/bash
curDir=$(pwd)
hour=0 #hours
min=40 #minutes
sec=0 #seconds
time=$(($hour*3600 + $min*60 + $sec))
picDir=背景文件夹
picNum=$(ls -l $picDir/*.jpg | wc -l)


while true
do
cd $picDir
    curBackgroud=$(gsettings get org.gnome.desktop.background picture-uri)
    randNum=$(($RANDOM % $picNum))
    cnt=0
    for file in *.jpg
    do
        if [ "$cnt" = "$randNum" ]
        then
            fileUri=file://$picDir/$file
            if [ "$curBackgroud" = "$fileUri" ]
            then
                continue
            fi
            sleep $time
            gsettings set org.gnome.desktop.background picture-uri "$fileUri"
            break
        else    
            cnt=$(($cnt + 1))
        fi
    done
cd $curDir
    
done

将代码中的路径修改为背景图片的文件夹,然后设置成开机自动执行就OK了

我设置开机启动的方法是在/etc/xdg/autostart/下设置一个启动项,

内容为

[Desktop Entry]
Name=wallpaper-start
Comment=Jupiter Startup
Icon=/usr/share/icons/Humanity/categories/128/application-community.svg
Exec=脚本路径
Terminal=false
Type=Application
Name[en_US]=wallpaper-start

保存名为**.desktop,并且需要设置模式,777最安全!

在ubuntu12.04/13.04版本上测试通过,这里需要说明的是,一般在设置背景之后,在用户登陆画面会自动显示该用户的背景,使用本文的自动切换脚本切换背景之后,用户登陆界面也会显示同样的背景。这在ubuntu12.04上没有问题,可是在ubuntu13.04上就无法显示了,但是桌面背景可以切换。经过试验以后发现在13.04上将背景图片放置在/home/***/图片/Wallpapers文件夹后就可以显示登陆界面的背景。

原文地址:https://www.cnblogs.com/f8915345/p/3063044.html