Для xfce4 в Xubuntu 14.04 використовуйте властивість / backdrop / screen0 / monitorDisplayPort-1 / робоча область0 / last-image замість / backdrop / screen0 / monitor0 / image-path
Вам також потрібно встановити змінну середовища DBUS_SESSION_BUS_ADDRESS таким чином:
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
У моєму випадку я хотів обертати шпалери (випадкове зображення з вибраної папки) один раз на день, але я вмикаю свій ПК нерегулярно, тому вирішував це, запускаючи сценарій із крону кожні півгодини, але набираю чинності лише один раз день.
запис у crontab (додайте його за допомогою crontab -e
команди):
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
Примітка: Якщо ви використовуєте не англійську мову системи, властивість може мати іншу назву. Найкращий спосіб дізнатися ім'я властивості, відкрити вікно терміналу та виконати цю команду:
xfconf-query -c xfce4-desktop -m
Це включить моніторинг властивостей xfce4-desktop. Тепер змініть фон вручну. Ви повинні побачити ім'я властивості, на яке вплинула ця зміна, у вікні терміналу. Використовуйте це ім'я властивості, якщо воно відрізняється від / backdrop / screen0 / monitorDisplayPort-1 / workpace0 / last-image