在 GNOME 3 下定期更换壁纸?

在 GNOME 3 下定期更换壁纸?

我使用带有 GNOME 3 的 Fedora 15,我希望我的壁纸能够像 Windows 7 一样定期更改。如果它可以使用 RSS/Atom 或指定目录,那就最好了。

我在存储库中没有找到任何工具。我猜你可以用脚本和 cron 来更改它,但我正在寻找更优雅的东西。

答案1

这是您正在寻找的解决方案:

我做到了;虽然只是一个测试版本,但是可以工作!

答案2

将以下 shell 脚本保存在某处:

#!/bin/bash

WP_DIR=/home/honeyp0t/wallpapers

cd $WP_DIR
while [ 1 ] 
  do
  set -- * 
  length=$#
  random_num=$((( $RANDOM % ($length) ) + 1)) 

  gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"

  sleep 600 
done

然后在主目录中的 .config/autostart 中将以下内容放入名为 wallpaper-changer.desktop 的文件中

[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true

这将每 10 分钟更换一次壁纸……或者按照您在脚本中设置的任何值更换一次……

我最初发布此内容为对题为“自定义 GNOME Shell”的帖子的评论在 OS 水管工的沉思中。

答案3

如果您更喜欢使用 cron 作业而不是 init 脚本,以下是我所做的。感谢 Hubert 的启发!

#!/bin/bash

walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"

将脚本保存在某处(例如$HOME/bin/rotate_bg),使其可执行(chmod +x $HOME/bin/rotate_bg),然后添加cron作业以按照您希望更改背景的频率运行它。运行crontab -e以编辑cron用户的表格。以下是描述 crontab 格式的链接。以下条目将每 10 分钟轮换一次您的背景:

*0 * * * * $HOME/bin/rotate_bg

答案4

将以下 shell 脚本保存在某处:

#!/bin/bash
while true; do
file=`/bin/ls -1 $1 | sort --random-sort | head -1`;path=`readlink --canonicalize "$dir/$file"`;
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

使用以下语法运行它:

scriptname directoryofpictures howmanyseconds

相关内容