我编写了一个小脚本createCountdownWallpaper.py
,用于/tmp/wallpaper.png
每隔几分钟重新渲染一次壁纸,setWallpaper.sh
其脚本如下所示:
#!/bin/bash
cd /home/path/to/countdown
/usr/bin/python3.5 createCountdownWallpaper.py
xfconf-query \
--channel xfce4-desktop \
--property /backdrop/screen0/monitor0/workspace0/last-image \
--set /tmp/wallpaper.png
通道和property
已使用-m
标志进行选择xfconf-query
,如中所述这个答案。从终端运行时它可以工作。但是,从运行时cron
,它似乎没有效果。Crontab:
SHELL=/bin/bash
*/1 * * * * /home/path/to/countdown/setWallpaper.sh 2>/tmp/cron_errors.txt
我也尝试过获取各种.bashrc
脚本.profile
并设置环境变量,例如
DBUS_SESSION_BUS_ADDRESS=unix:abstract=tmp/dbus-r4nd0MjunK
但这也无济于事。
答案1
运行之前执行此操作xfconf-query
:
PID=$(echo $(ps -C xfce4-session -o pid=))
export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ)
答案2
以下组合似乎有效,它每分钟重新渲染并更改背景。
SHELL=/bin/bash
*/1 * * * * yourUsername source $HOME/.profile ; source $HOME/.bashrc; env DISPLAY=:0.0 /home/path/to/countdown/setWallpaper.sh 2>/tmp/cron_errors.txt
提示:
DBUS_SESSION_BUS_ADDRESS
似乎无所谓Folder: /tmp
GUI“桌面”菜单中的设置做事情N
必须在 XFCE-gui 中停用壁纸设置中每分钟自动更换壁纸的功能。