Смена обоев рабочего стола

Хотелось бы, чтобы при каждой загрузке менялась обоина, или через промежуток времени. Знаю — знаю, встроено в винду, начиная с Windows 7 и в KDE, программ таких как грязи, и класс таких программ «свистелки и перделки».

На примере связки Openbox и feh или Openbox, и pcmanfm, запущенного в качестве менеджера рабочего стола.

Скрипт setpaper (не забудьте дать права на выполнение)

#!/bin/bash
#papka=~/"pro ba"
papka=~/"Изображения/wallpapers" # путь к картинкам
programm="pcmanfm -w" # команда, которая ставит обои. 
#programm="feh --bg-scale"
sleep 2 # pcmanfm не успевает запустится, задержка 2 сек
$programm "$papka"/"`ls "$papka" | shuf -n1`" # ставим случайную картинку из каталога
while [ ${#1} -ne "0" ] # если после вызова этого файла есть аргумент (число секунд)
do
sleep $1 # задержка на это число секунд
$programm "$papka"/"`ls "$papka" | shuf -n1`" # ставим случайную картинку из каталога
done # зацикливаем

В автозагрузку дописываем (файл ~/.config/openbox/autostart) для установки обоев при загрузке (предполагается, что файл setpaper в домашнем каталоге, или пропишите свой путь)

pcmanfm --desktop &
~/setpaper &

или для смены обоев каждые 30 мин. (1800 сек.)

pcmanfm --desktop &
~/setpaper 1800 &

Скрипт понимает пробелы в путях и именах файлов.