Почитал я недавно про скрипт на PowerShell, который ставил фотки со спутника обоями на рабочий стол. Погуглив, не нашёл реализации под linux — коя ниже.
Возможные проблемы
По мелочи: сервер не всегда загружает изображения прямо совсем новые, так что есть шанс наткнуться на пустоту. Поэтому в скрипте я получаю фотки прошлого дня: nowday=$(date +%d -d -1day)
Сервер загружает новый пак фотографий раз в десять минут и требует округления времени до десятков. Поэтому
nowtime=$(date +%H%M | sed -r 's/.$//')
nowtime=$nowtime"000"
Особые проблемы тут в одном месте: в установке обоев на рабочий стол.
Для xfce4
Общий синтаксис
xfconf-query -c xfce4-desktop -p %desktoppath% -s %image%
Получение параметров
Открываешь /home/user/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
Предположим, что там что-то типа:
<channel name="xfce4-desktop" version="1.0"> <property name="backdrop" type="empty"> <property name="screen0" type="empty"> <property name="monitorVGA-0" type="empty"> <property name="workspace0" type="empty"> <property name="color-style" type="int" value="2"/> <property name="image-style" type="int" value="5"/> <property name="last-image" type="string" value="/home/user/pictures/my_standart_wallpaper.png"/> </property> </property> </property> </property> </channel>
Значит, вместо %desktoppath%
надо указать /backdrop/screen0/monitorVGA-0/workspace0/last-image
Ну, а %image%
— полный путь к файлу нового изображения.
Другие X-системы
?
Код
#!/bin/bash delay=900 # seconds while true do width=550 level='4d' #Level can be 4d, 8d, 16d, 20d numblocks=4 #this apparently corresponds directly with the level, keep this exactly the same as level without the 'd' nowtime=$(date +%H%M | sed -r 's/.$//') nowtime=$nowtime"000" nowyear=$(date +%Y) nowmonth=$(date +%m) nowday=$(date +%d -d -1day) workdir="/home/cutemaj/.earthwallpaper" if [ ! -d $workdir ]; then mkdir -p $workdir fi cd $workdir outfile="latest.jpg" site="http://himawari8-dl.nict.go.jp/himawari8/img/D531106" url="$site/$level/$width/$nowyear/$nowmonth/$nowday/$nowtime" dash="_" for (( i=0; i<=$numblocks-1; ++i)) do for (( j=0; j<=$numblocks-1; ++j)) do partialimageurl="$url$dash$i$dash$j.png" echo Downloading from $partialimageurl to $workdir wget $partialimageurl -P $workdir done convert -append *_*_*.png img_$i.png rm *_*_*.png done convert +append img_*.png out.png rm img_*.png xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorVGA-0/workspace0/last-image -s $workdir/out.png sleep $delay done
Похожее
С авторами не связывался, но, думаю, в открытый доступ они это не просто так грузили.
ссылка на оригинал статьи https://habrahabr.ru/post/276845/
Добавить комментарий