Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: XFCE achtergrondwisselaar  (gelezen 3072 keer)

Offline Bloom

  • Lid
XFCE achtergrondwisselaar
« Gepost op: 2021/01/17, 22:02:22 »
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.

Offline h2o

  • Lid
Re: XFCE achtergrondwisselaar
« Reactie #1 Gepost op: 2021/01/18, 07:57:32 »
Heel knap dat je dit hebt uitgezocht! Complimenten.

Zelf heb ik in de /home directory een local.wallpapers directory en daar een aantal suddirs met dezelfde wallapapers in verschillende resoluties. Deze heb ik via rsync op al mijn systemen gesynchroniseerd en afhankelijk van welke monitor(en) er gebruik wordt gemaakt verwijs ik hier naar. Werk prima.
Werk laptops + werkstation: Debian Testing
Privé laptops: Debian Testing/Unstable
Test laptop: Diverse andere Linux distribities
Chromebooks: ChromeOS Flex