Комментарии 29
Это что за позорище у вас в скрипте?
Что будет 1 марта? nowday будет вычислен в предыдущий день — 29 (февраля). А вот месяц и год будут браться без сдвига времени, получим в итоге timestamp для 29 марта, для которого фото ещё, вестимо, нет.
И удручающе неффективно, куча лишних форков, когда можно сделать всё за раз:
Ваш скрипт уже достаточно велик, чтобы имело смысл создать под него репу, чтоб слать туда пулреквесты.
nowtime=$(date +%H%M | sed -r 's/.$//')
nowtime=$nowtime"000"
nowyear=$(date +%Y)
nowmonth=$(date +%m)
nowday=$(date +%d -d -1day)
...
url="$site/$level/$width/$nowyear/$nowmonth/$nowday/$nowtime"
Что будет 1 марта? nowday будет вычислен в предыдущий день — 29 (февраля). А вот месяц и год будут браться без сдвига времени, получим в итоге timestamp для 29 марта, для которого фото ещё, вестимо, нет.
И удручающе неффективно, куча лишних форков, когда можно сделать всё за раз:
timestamp=$(date -d -1day +%Y/%m/%d/%H%M | sed -r 's/.$/000/')
...
url="$site/$level/$width/$timestamp"
Ваш скрипт уже достаточно велик, чтобы имело смысл создать под него репу, чтоб слать туда пулреквесты.
Ну, я решил, что бог с ним… Пофиксил кодом от SleepingLion
Как то странно, пишете
потом:
Что значит «Другие X-системы»?
Для xfce4
…
xfconf-query -c xfce4-desktop....
потом:
Другие X-системыи опять в скрипте
...xfconf-query -c xfce4-desktop...
Что значит «Другие X-системы»?
Вставьте уж тогда проверку, если хфце, то так, если гном, то такая команда, если кеды, то сякая…
Я ток «за», но мне не на чем проверить работоспособность команд.
Для гнома работает:
KDE под рукой нет проверить.
gconftool-2 -t str -s /desktop/gnome/background/picture_filename $workdir/out_$numblocks.png
KDE под рукой нет проверить.
Гномовские переменные на всякий случай:
DESKTOP_SESSION=gnome
GDMSESSION=gnome
WINDOWMANAGER=/usr/bin/gnome
… Погуглив, не нашёл реализации под linux...
В статье на которую Вы ссылаетесь есть ссылка на баш-скрипт.
Не проверял на сколько он рабочий, но есть.
Pullrequest:
Fixed: Корректная сборка больших разрешений (16d, 20d);
Fixed: Поправлена работа по первым числам каждого месяца;
Added: Возможность указания размера обоев из коммандной строки (например script.sh 8 — чб 4400x4400).
Правки старался делать минимальные.
Fixed: Корректная сборка больших разрешений (16d, 20d);
Fixed: Поправлена работа по первым числам каждого месяца;
Added: Возможность указания размера обоев из коммандной строки (например script.sh 8 — чб 4400x4400).
Code
#!/bin/bash
delay=900 # seconds
while true
do
width=550
numblocks=${1:-4}
level=$numblocks'd' #Level can be 4d, 8d, 16d, 20d
nowtime=$(date +%H%M | sed -r 's/.$//')
nowtime=$nowtime"000"
nowyear=$(date +%Y -d -1day)
nowmonth=$(date +%m -d -1day)
nowday=$(date +%d -d -1day)
workdir="/home/cutemaj/.earthwallpaper"
if [ ! -d $workdir ]; then
mkdir -p $workdir
fi
cd $workdir
site="http://himawari8-dl.nict.go.jp/himawari8/img/D531106"
url="$site/$level/$width/$nowyear/$nowmonth/$nowday/$nowtime"
for (( i=0; i<=$numblocks-1; ++i))
do
for (( j=0; j<=$numblocks-1; ++j))
do
sourceurl="$url"$(printf '_%d_%d.png' "$i" "$j")
desturl="piece_"$numblocks"_"$(printf '%02d_%02d.png' "$i" "$j")
echo Downloading $sourceurl to $desturl
wget $sourceurl -O $workdir/$desturl
done
convert -append piece_$numblocks*_*.png img_$numblocks"_"$(printf '%02d' "$i").png
rm piece_$numblocks*_*.png
done
convert +append img_$numblocks"_"*.png "out_"$numblocks".png"
rm img_*.png
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorVGA-0/workspace0/last-image -s $workdir/out_$numblocks.png
sleep $delay
done
Правки старался делать минимальные.
Ещё пара фиксов + правка предложенная Self_Perfection:
Заголовок спойлера
#!/bin/bash
delay=900 # seconds
while true
do
width=550
numblocks=${1:-4}
level=$numblocks'd' #Level can be 4d, 8d, 16d, 20d
timestamp=$(date -d -1day +%Y/%m/%d/%H%M | sed -r 's/.$/000/')
workdir="/home/cutemaj/.earthwallpaper"
if [ ! -d $workdir ]; then
mkdir -p $workdir
fi
cd $workdir
site="http://himawari8-dl.nict.go.jp/himawari8/img/D531106"
url="$site/$level/$width/$timestamp"
for (( i=0; i<=$numblocks-1; ++i))
do
for (( j=0; j<=$numblocks-1; ++j))
do
sourceurl="$url"$(printf '_%d_%d.png' "$i" "$j")
#sourceurl="$url$dash$i$dash$j.png"
#desturl="$url$dash"
desturl="piece_"$numblocks"_"$(printf '%02d_%02d.png' "$i" "$j")
echo Downloading $sourceurl to $desturl
wget $sourceurl -O $workdir/$desturl
done
convert -append piece_$numblocks*_*.png img_$numblocks"_"$(printf '%02d' "$i").png
rm piece_$numblocks*_*.png
done
convert +append img_$numblocks"_"*.png "out_"$numblocks".png"
rm img_$numblocks"_"*.png
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorVGA-0/workspace0/last-image -s $workdir/out_$numblocks.png
sleep $delay
done
По мелочи: сервер не всегда загружает изображения прямо совсем новые, так что есть шанс наткнуться на пустоту. Поэтому в скрипте я получаю фотки прошлого дня
Может дело в тайм-зоне? ;-)
Наверное сохраняется по GTM
Вот так работает и с виду более похоже на правду:
Вот так работает и с виду более похоже на правду:
timestamp=$(date -d -4hours +%Y/%m/%d/%H%M | sed -r 's/.$/000/')
Ещё с долготой разобраться бы.
Ну, в Арче (хз, как в других linux) есть куча файлов
/usr/share/zoneinfo/%Zone%/%SubZone%
, которые используются для определения временных настроек. SubZone — это крупный город, по его имени теоретически можно определить примерные координаты юзера.Я не про таймзону, я про ракурс съёмки, днём не видел ещё что там получается.
Сделал минутное видео последних десяти дней — могу выложить.
Спутник геостационарный, если менять ракурс — надо искать другой. Я поспрашиваю знакомых астрономов, но ничо не обещаю)
Установка поверх i3wm:
```
sudo apt-get install -y feh
feh --bg-scale ~/Pictures/image.jpg #для установки
echo «exec feh --bg-scale ~/Pictures/image.jpg» >> ~/.config/i3/config #для автоустановки при загрузке
```
```
sudo apt-get install -y feh
feh --bg-scale ~/Pictures/image.jpg #для установки
echo «exec feh --bg-scale ~/Pictures/image.jpg» >> ~/.config/i3/config #для автоустановки при загрузке
```
Обновлять картинку по крону мне кажется лучшим решением чем таймер на 900 секунд в скрипте.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
himawari8 wallpaper для linux