最近研究了一下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文件夹后就可以显示登陆界面的背景。