Установка обоев из cron требует установки gsettings. Поскольку cron работает с очень ограниченным набором переменных среды, вам понадобится установить специальную переменную, называемую:
DBUS_SESSION_BUS_ADDRESS
Не (что вы ожидаете) DISPLAY -переменная. См. Также здесь, как это сделать.
В качестве альтернативы вы можете использовать простой сценарий ниже. При запуске сценарий устанавливает соответствующие обои, тогда весь скрипт будет ждать до полуночи, чтобы изменить обои. Затем снова спать до следующей полуночи и т. Д.
import time
import os
import subprocess
picsdir = "/home/jacob/Bureaublad/pics"
images = sorted([os.path.join(picsdir, pic) for pic in os.listdir(picsdir)])
def calc_sleep():
secdata = time.strftime("%H %M %S").split()
seconds = (int(secdata[0])*3600)+(int(secdata[1])*60)+(int(secdata[2]))
# calculate the sleep time until next midnight
return 86400+1-seconds
while True:
# weekday
day = int(time.strftime("%w"))
# the corresponding image from the set folder
image = images[day-1]
# set the image from gsettings
command = ["gsettings", "set", "org.gnome.desktop.background",
"picture-uri", "file://"+image]
subprocess.check_call(command)
# calculate the time to sleep until next midnight
wait = calc_sleep()
time.sleep(wait)
python3 /path/to/wallswitch.py
Должны быть установлены обои, соответствующие дню недели. Если все работает нормально, добавьте его в приложения для запуска: Dash> Startup Applications> Add. Добавьте команду: /bin/bash -c "sleep 10 && python3 /path/to/wallswitch.py"