Hintergrundbild von cron in xfce4 einstellen

348
Andrey Tyukin

Ich habe ein kleines Skript geschrieben createCountdownWallpaper.py, das das Hintergrundbild /tmp/wallpaper.pngalle paar Minuten erneut rendern soll, und ein Skript setWallpaper.sh, das wie folgt aussieht:

#!/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 

Die Kanäle und propertywurden mithilfe der -mFlagge von ausgewählt xfconf-query, wie in dieser Antwort beschrieben . Es funktioniert, wenn vom Terminal ausgeführt. Wenn jedoch von ausgeführt wird cron, scheint es keine Auswirkung zu haben. Crontab:

SHELL=/bin/bash  */1 * * * * /home/path/to/countdown/setWallpaper.sh 2>/tmp/cron_errors.txt 

Ich habe auch versucht, verschiedene .bashrcund .profileSkripte zu beschaffen und Umgebungsvariablen wie einzustellen

DBUS_SESSION_BUS_ADDRESS=unix:abstract=tmp/dbus-r4nd0MjunK 

aber es half auch nicht.

0

1 Antwort auf die Frage

0
Andrey Tyukin

Die folgende Kombination schien zu funktionieren, sie rendert jede Minute neu und ändert den Hintergrund.

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 

Hinweise:

  • DBUS_SESSION_BUS_ADDRESS scheint nicht von Bedeutung zu sein
  • Die Folder: /tmpEinstellung im GUI-Menü "Desktop" ist von Bedeutung
  • Das automatische Wechseln von Hintergrundbildern Nim Minutentakt muss in der XFCE-gui für Hintergrundbildeinstellungen deaktiviert werden .