W przypadku Xfce4 w Xubuntu 14.04 użyj właściwości / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image zamiast / backdrop / screen0 / monitor0 / image-path
Musisz także ustawić zmienną środowiskową DBUS_SESSION_BUS_ADDRESS w następujący sposób:
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
W moim przypadku chciałem obracać tapetę (losowy obraz z wybranego folderu) raz dziennie, ale nieregularnie włączam komputer, więc rozwiązałem go, uruchamiając skrypt z crona co pół godziny, ale działam tylko raz dzień.
wpis w crontab (dodaj go za pomocą crontab -e
komendy):
0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh
rotate-wallpaper.sh:
#!/bin/bash
wallpaperdir="/home/lucifer/Pictures/wallpapers"
datefile="/home/lucifer/.wallsw"
thisday=$( date +%j )
wallfiles=($wallpaperdir/*)
randompic=`printf "%s\n" "${wallfiles[RANDOM % ${#wallfiles[@]}]}"`
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
if [ -f "$datefile" ]
then
lastday=$( cat "$datefile" )
if [ "$lastday" != "$thisday" ]
then
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
else
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
Uwaga: -Jeśli używasz ustawień regionalnych w języku innym niż angielski, właściwość może mieć inną nazwę. Najlepszym sposobem na znalezienie nazwy właściwości, otwarcie okna terminala i uruchomienie tej komendy:
xfconf-query -c xfce4-desktop -m
Spowoduje to włączenie monitorowania właściwości xfce4-desktop. Teraz zmień tło ręcznie. W oknie terminalu powinna zostać wyświetlona nazwa właściwości, na którą wpłynęła ta zmiana. Użyj tej właściwości, jeśli jest inna niż / background / screen0 / monitorDisplayPort-1 / workspace0 / last-image