Я не знал что существует формирователь xml для автосмены обоев и написал свой.
Привожу код:
#!/bin/bash
echo "sintaxis: $0 [path] [min_sec] [max_sec]"
if [ -n "$1" ];then path="$1";else path=.;fi
if [ -n "$2" ];then minT="$2";else minT=60;fi
if [ -n "$3" ];then maxT="$3";else maxT=1800;fi
outfile=background-1.xml
pathname=`pwd`
if [ ! -f func_show_bg_text ]
then
echo "create func func_show_bg_text"
echo "minT=\"\$3\"
maxT=\"\$4\"
rand=\`rand \"\$minT\" \"\$maxT\"\`
echo \" <static>
<duration>\$rand</duration>
<file>\$2/\$1</file>
</static>\"
" > func_show_bg_text
chmod 555 func_show_bg_text
fi
# date +Y%Y_m%m_d%d__ch%H_m%M_s%S
echo "<background>
<starttime>
<year>`date +%Y`</year>
<month>`date +%m`</month>
<day>`date +%d`</day>
<hour>`date +%H`</hour>
<minute>`date +%M`</minute>
<second>`date +%S`</second>
</starttime>
<!-- This animation will start at midnight. -->
" > $outfile
find "$path"/* -type f -iname '*.jpg' -exec ./func_show_bg_text "{}" "$pathname" "$minT" "$maxT" \; >>$outfile
# какую это выполняет функцию я пока не понял и не разбирался
# echo "<transition>
# <duration>5.0</duration>
# <from>/usr/share/backgrounds/cosmos/whirlpool.jpg</from>
# <to>/usr/share/backgrounds/cosmos/cloud.jpg</to>
# </transition>" >>$outfile
echo "</background>" >> $outfile
Этот скрипт, при первом использовании создает рядом с собой функцию для использовании в find
и использует скрипт "rand", который имеет два параметра и выдает случайное число в указанном диапазоне.
rand:#!/bin/bash
# границы диапазона в выход не включены!
if [[ -z "$1" ]]; then min=1;else min="$1";fi
if [[ -z "$2" ]]; then max=1;else max="$2";fi
number=0 #initialize
while [ "$number" -le $min ]
do
number=$RANDOM
let "number %= $max" # Ограничение "сверху" числом $max.
done
echo $number
#random=$(($(($min+$(($max-$min))*${rnd:0:2}/100)) ))
min=
max=
random=
rnd=