背景
先前从 wallhaven
上抓了几千张图,想写个脚本 5 分钟更换一下桌面和锁屏壁纸
桌面壁纸命令更换已有相关资料,主要难点在锁屏壁纸的更换上
备份原有文件
在 /var/cache/image-blur
中新建一个 backup
文件夹,将里面所有图片移动到 backup
中
sudo mkdir -p /var/cache/image-blur/backup
sudo mv /var/cache/image-blur/* /var/cache/image-blur/backup
sudo rm -f /usr/share/wallpapers/deepin/desktop.jpg
sudo rm -f /usr/share/backgrounds/deepin/desktop.jpg
脚本
set.py
随机选择一张图片,设置成桌面壁纸脚本
import os
import random
path = '/home/limstash/Pictures/Wallpaper/wallhaven' //images path
filename = random.sample(os.listdir(path), 1)
image = path + "/" + filename[0]
os.system('gsettings set com.deepin.wrap.gnome.desktop.background picture-uri '+image+'')
print(image)
run.sh
cron
执行脚本 (需要 root
权限)
#!/bin/bash
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
rm -f /var/cache/image-blur/*
image=`sudo -u limstash -E python3 /home/limstash/Pictures/Wallpaper/scripts/set.py`
cp -f $image /usr/share/wallpapers/deepin/desktop.jpg
cp -f $image /usr/share/backgrounds/deepin/desktop.jpg
注意,其中的 DBUS_SESSION_BUS_ADDRESS
需要按需更改
可以打开终端,输入 declare -x
查询对应的值
sudo 的执行用户同样也需更改成对应用户
定时自动执行
确保 cron
已经安装
sudo crontab -e
*/5 * * * * /home/limstash/Pictures/Wallpaper/scripts/run.sh