Gebruiken jullie de automatische achtergrondwisselaar in XFCE 4.10 of groter?
Ik niet, omdat die veel te langzaam is. Ik heb ettelijke duizenden wallpapers in een directory van een centraal opslagvolume (vroeger een NAS, tegenwoordig LizardFS) staan en als ik die probeer in te lezen in de automatische achtergrondwisselaar duurt dat meer dan 45 minuten, daar heb ik het geduld niet voor. Het ligt niet aan de NAS of LizardFS, want als ik die bestandslijst opvraag via het onderstaande find-commando heeft hij dat binnen de seconde.
Ik heb hem dus ingesteld op één achtergrond (en gezien de duizenden in die directory duurt dat ook m.i. volledig onterecht flink lang) en roteer de achtergronden om de vijf minuten met een bash-script dat ik in de achtergrond laad en laat draaien.
Dit script is voor XFCE, maar je kunt het aanpassen voor Mate of een andere desktop:
#!/bin/bash
Scherm=$(xrandr|grep " connected"|cut -f 1 -d " ")
BehangLI=$(xfconf-query -c xfce4-desktop -l|grep "screen0/monitor${Scherm}/workspace1/last-image")
Behangpad="$HOME/Afbeeldingen/DesktopWallpapers/"
Behanglijst="$HOME/wallpaper.list"
Behangkeuze="$HOME/wp.log"
while true; do
find "$Behangpad" -type f >"$Behanglijst"
CurPic=$(eval cat "$Behangkeuze" 2>/dev/null)
if [[ -n $CurPic ]]; then
picnr=$(eval cat "$Behanglijst" | grep -n "$CurPic" | head -n 1 | cut -d ':' -f 1)
else
picnr=0
fi
picnr=$((picnr + 1))
picn2=$((picnr + 1))
PIC=$(eval cat "$Behanglijst" | sed -n "${picnr},${picnr}p;${picn2}q")
xfconf-query -c xfce4-desktop -p "$BehangLI" -s "$PIC"
echo "$PIC">"$Behangkeuze"
sleep 5m
done
Het inlezen van de variable Scherm via xrandr veronderstelt dat er maar één monitor aangesloten is, hier moet je ook wijzigingen aanbrengen als je meerdere schermen aangesloten hebt zodat hij dan het juiste of alletwee gebruikt.
Verder heb ik maar één van mijn vier desktops een automatisch veranderdende achtergrond gegeven en dat is de tweede (vandaar workspace1, de eerste is immers workspace0), dus dat moet je ook nog aanpassen als je alleen de eerste of eventueel allemaal wil hebben.