Para o xfce4 no Xubuntu 14.04, use a propriedade / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image em vez de / backdrop / screen0 / monitor0 / image-path
Você também precisa definir a variável de ambiente DBUS_SESSION_BUS_ADDRESS assim:
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
No meu caso, eu queria girar o papel de parede (imagem aleatória de uma pasta selecionada) uma vez por dia, mas ligava meu PC irregularmente, então resolvi executando um script do cron a cada meia hora, mas apenas faça efeito uma vez por dia.
entrada no crontab (adicione-o via comando 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
Nota:
-Se você estiver usando localidade do sistema que não seja o inglês, a propriedade poderá ter um nome diferente. A melhor maneira de descobrir o nome da propriedade, abrir uma janela de terminal e executar este comando:
xfconf-query -c xfce4-desktop -m
Isso ativará o monitoramento das propriedades do desktop xfce4. Agora mude seu fundo manualmente. Você deve ver o nome da propriedade que foi afetado por essa alteração na janela do terminal. Use este nome de propriedade se for diferente de / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image