Ce ne sono due versioni: una imposta lo sfondo all'avvio, l'altra lo cambia casualmente ogni dieci minuti.
#!/bin/bash
workingPath=$1
# genera un file temporaneo con la lista filtrata
# dei file presenti nella cartella
(ls $workingPath | grep jpg && ls $workingPath | grep png) > /tmp/listaSfondi
fileNum=`cat /tmp/listaSfondi | wc -l`
# genera un numero casuale e da` il resto della divisione
# per il numero di file nella cartella
imageNum=$RANDOM
let "imageNum %= $fileNum"
# sceglie il file corrispondente al numero
let "imageNum += 1"
fileName=`cat /tmp/listaSfondi | head -n $imageNum | tail -n 1`
# imposta lo sfondo
bgPath=`echo $workingPath"/"$fileName | sed s/"\/\/"/"\/"/g`
hsetroot -fill $bgPath
Per cambiare lo sfondo ogni N secondi basta aggiungere all'inizio "while [ "1" = "1" ]; do" e alla fine "sleep N" e "done".