我想知道是否有一个程序可以从目录中选择壁纸并在每次登录时自动将其设置为我的桌面背景。
我已经尝试过 Desktop Drapes、Compiz 壁纸插件(来自 extras 包)和 Wallpapoz,但它们似乎不起作用。有没有可以帮我完成这些工作的脚本?
我正在运行 11.04 正式版。如能得到任何帮助我将不胜感激。
答案1
经过一番思考,我脱掉了我的 RandomQuotedWallpaper 脚本并想出了一个更简单的 RandomWallpaper 脚本。只需将其设置为随会话一起启动,并且不要忘记在配置会话中添加壁纸文件夹。
为了方便起见,这里还提供完整的脚本:
#!/bin/bash
# This is a script which sets a random wallpaper.
# Some ideas are coming from the xplanet-script located at: http://rbrusu.com/xplanet-desktop-wallpape.html
# Public Domain or CC0
function setGnome() {
gconftool -t str -s /desktop/gnome/background/picture_filename $1
}
function setMate() {
mateconftool-2 -t str -s /desktop/mate/background/picture_filename $1
}
# Directory of the wallpapers
wallpaperdir=~/Wallpapers
sleep=3m
if [ ! -d "$wallpaperdir" ]; then
echo "$wallpaperdir does not exist!"
fi
newWallpaper=$(ls "$wallpaperdir" | sort --random-sort | head -n 1)
setGnome "$wallpaperdir/$newWallpaper"
# Wait for some time and then start over.
sleep $sleep
exec $0
答案2
我看到这里已经有一个被接受的答案,但是它是在我编写这个脚本时发布的,所以我也想把它放在这里。;-)
您可以在“启动应用程序”中放置一个链接来运行该脚本。
创建一个文件并将其粘贴到其中:
/bin/bash #!/bin/bash # # 作者 desgua # # 挑选一张随机图片并将其设为桌面壁纸 # ################################################################### pic=$(ls ~/Pictures/*/*.jpg | while read x; do echo "`expr $RANDOM % 100000`:$x"; done | sort -n| sed 's/[0-9]*://' | head -1) gconftool-2 --type str --set /desktop/gnome/background/picture_filename $pic 出口 0
记得做可执行文件。