所以我正在使用 Ubuntu,并且我遇到了许多用于自动更改壁纸的软件和解决方法,但是,这一切都与时间间隔有关,而我想要的是特定时间段。
就像我在黎明、早晨、中午、下午、黄昏和夜晚得到了这张壁纸。我想设置我的壁纸,让它们每个都在某个时间转换,例如凌晨 4 点、早上 8 点、中午 12 点、下午 3 点、下午 6 点和晚上 8 点。不是通过每3个小时左右,请。
我遇到了wallch、SyncWall和Variety,但没有看到我的预期目的。Syncwall 足够接近,只是它会导致双显示器墙纸的错误。
您可以推荐任何其他应用程序/软件吗?如果可以,手动脚本也可以。
我不知道,但也许你必须安装dconf第一
sudo apt-get install dconf-cli
Run Code Online (Sandbox Code Playgroud)编辑您的 crontab
crontab -e
Run Code Online (Sandbox Code Playgroud)为每个背景图像添加一个条目
*/5 4,5,6,7 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/4am'
*/5 8,8,9,10,11 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/8am'
*/5 12,13,14 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/12am'
*/5 15,16,17 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/3pm'
*/5 18,19 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/6pm'
*/5 20,21,22,23,0,1,2,3 * * * /path/to/change_wallpaper '/path/of/your/wallpaper/for/8pm'
Run Code Online (Sandbox Code Playgroud)
*/5)。 */1或*)保存并关闭您的 crontab 编辑器
创建脚本
nano change_wallpaper
Run Code Online (Sandbox Code Playgroud)添加下面的代码
#!/bin/bash -e
user=$(whoami)
fl=$(find /proc -maxdepth 2 -user "$user" -name environ -print -quit)
for i in {1..5}
do
fl=$(find /proc -maxdepth 2 -user "$user" -name environ -newer "$fl" -print -quit)
done
export DBUS_SESSION_BUS_ADDRESS
DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "$fl" | cut -d= -f2-)
IMG="file://$1"
if [ "$(gsettings get org.gnome.desktop.background picture-uri)" != "$FILE" ]; then
dconf write "/org/gnome/desktop/background/picture-uri" "'file://${IMG}'"
# gsettings set org.gnome.desktop.background picture-uri "'$IMG'"
fi
Run Code Online (Sandbox Code Playgroud)
dconf或gsettings。您可以在两种方法之间切换。只需移动的#在前面gsettings …线到dconf …线使其可执行
chmod +x change_wallpaper
Run Code Online (Sandbox Code Playgroud)在 crontab 中测试脚本
再次编辑您的 crontab
crontab -e
Run Code Online (Sandbox Code Playgroud)在下面添加(临时)行
*/1 * * * * /path/to/change_wallpaper '/path/of/any/wallpaper'
Run Code Online (Sandbox Code Playgroud)关闭 crontab 编辑器
等一下
如果脚本有效,请删除测试条目
再次编辑您的 crontab
crontab -e
Run Code Online (Sandbox Code Playgroud)删除下面的(临时)行
*/1 * * * * /path/to/change_wallpaper '/path/of/any/wallpaper'
Run Code Online (Sandbox Code Playgroud)关闭 crontab 编辑器
部分取自此处的脚本