所以我使用 Ubuntu,并且遇到了很多用于自动更换壁纸的软件和解决方法,但,这一切都与时间间隔我想要的是特定时间段。
比如我为黎明、早晨、中午、下午、黄昏和夜晚设置了这些壁纸。我想设置我的壁纸,让它们在特定的时间转换,例如凌晨 4 点、上午 8 点、中午 12 点、下午 3 点、下午 6 点和晚上 8 点。不是通过每 3 小时或类似情况,请。
我遇到了沃尔奇,同步墙和种类,但没有达到我的预期目的。Syncwall 已经足够接近了,只是它会导致双显示器壁纸出现错误。
您还有其他推荐的应用/软件吗?如果可以的话,手动脚本也可以。
答案1
我不确定,但也许你必须
dconf
先安装sudo apt-get install dconf-cli
编辑您的
crontab
crontab -e
为每个背景图像添加一个条目
*/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'
- 间隔设置为5分钟(
*/5
)。 - 最小可能间隔为 1 分钟(
*/1
或*
)
- 间隔设置为5分钟(
保存并关闭 crontab 编辑器
创建脚本
nano change_wallpaper
添加以下代码
#!/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
- 该脚本适用于
dconf
或gsettings
。您可以在两种方法之间切换。只需移动排在队伍#
最前面的gsettings …
dconf …
- 该脚本适用于
使其可执行
chmod +x change_wallpaper
在 crontab 中测试脚本
再次编辑你的 crontab
crontab -e
添加以下(临时)行
*/1 * * * * /path/to/change_wallpaper '/path/of/any/wallpaper'
关闭 crontab 编辑器
等一下
如果脚本有效,则删除测试条目
再次编辑你的 crontab
crontab -e
删除下面的(临时)行
*/1 * * * * /path/to/change_wallpaper '/path/of/any/wallpaper'
关闭 crontab 编辑器
脚本部分取自这里