Answers:
将以下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分钟更改一次墙纸…或您在脚本中设置的任何值……
我最初将此评论发布在OS管道工的Musings上题为“定制GNOME Shell”上的评论。
pictures-options
:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
如果您希望使用cron作业而不是init脚本,这就是我所做的。感谢休伯特的灵感!
#!/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
The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days
。例如,进程不会被调用,也不会浪费CPU周期。也来自Wiki上的“忙碌等待”:Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
由于某种原因,我看不到回复Hubert Samm的方法,但是我发现他的链接很有帮助。为了以防万一,或者您不想阅读整篇文章来获得特定的答案,我添加了如何在Gnome 3中完成动态更新背景的方法。
通过转至〜/ .cache / gnome-control / center / backgrounds,您将找到一个长名称的文件(例如“ a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27”),这是您将背景设置为文件的缓存版本。如果删除此文件并创建一个具有相同名称的符号链接来替换它:
$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27
然后,随着原始文件的更新,桌面背景将发生变化以反映这一点。我正在使用此技术来确保XPlanetFX背景保持最新。例如,只要有一个名为“ background.jpg”的图像,并在需要更新背景时更改此文件即可。
解决此问题的更正确方法可能是使用gsettings更改picture-uri地址以直接指向您选择的文件,但是我选择了symlink选项,因为我不知道设置更改的持久性使用UI更改墙纸时。无论哪种方法都应该在理论上起作用。
注意:我不确定,因为我没有对其进行测试,但是如果您通过常规UI更改背景,则很可能会更改唯一的长文件名,并且符号链接将不再有用。