linux: обои в виде планеты linux realtime wallpaper Earth

Давным-давно я сделал себе обоину в виде автоматически обновляющейся карты земли с облаками и освещённостью. Сейчас вспомнил и вернул на рабочий стол. Сама карта лежит на http://www.die.net/earth/ . Периодически обновляется, типа в реальном времени. Инструкций в инете полно, вот и моя с некоторыми ремарками, без которых первая попавшаяся из них у меня не заработала.

Из известных мне карт там находятся (цифра — это ширина, есть и другие, я взял самую большую из известных):
http://static.die.net/earth/mercator/1600.jpg
http://static.die.net/earth/rectangular/1600.jpg
http://static.die.net/earth/hemisphere/1600.jpg
http://static.die.net/earth/mollweide/1600.jpg
http://static.die.net/moon/512.jpg

Будем пользоваться довольно классическим способом — выкачивать wget-ом в заранее определённый файл, который указан в вашей DE как картинка рабочего стола.

Итак, все без исключения инструкции советуют делать так:

wget -N -O /home/dimon/wallpaper.jpg http://static.die.net/earth/mercator/1600.jpg

И делать это через шедулер с периодом в 5 минут.

Но здесь кроется очень много косяков. От половины из них оно не работает вообще, от половины работает некорректно. В итоге способ совершенно нерабочий.

Во-первых, параметры -O и -N несовместимы принципиально. И вместе НЕ работают. И в мане это написано. Вернее, не работает, конечно из них -N, ибо он отвечает за опцию проверки по таймштампу. И если файл не обновился, то он заново не выкачивает. А -O отвечает за выходной файл, НО как следствие, все входящие документы оно указывает объединить в один, т.е. понятно почему -N при этом работать не может? Можно оставить, конечно и так, если непринципиально, но смысл выкачивать постоянно по полметра есть не всегда. Так что лучше пользоваться параметром -P и задавать каталог назначения для всех скачанных файлов.

Во-вторых, сервер не отдаёт файлы wget-у. Уж не знаю с какого времени это началось, но факт остаётся фактом — плохим юзерагентам отдаётся пустой gif-ный пиксел. Паскудство, будем указывать юзерагента. Ну, любой возьмите реальный, хотя я писал просто “Mozilla”.

В-третьих, период запроса файла в 1 минуту приведёт к бану. Но, возможно, в моём случае просто регулярно глючило. Но, в любом случае, опыты показали, что картинка обновляется лишь раз в полчаса: где-то в начале каждого часа и где-то в начале второй половины часа. Так что можно запрашивать и раз в 15 минут, например.

Итак, общая команда запроса выглядит примерно так:

wget -N -U Mozilla -P /home/dimon/temp http://static.die.net/earth/mercator/1600.jpg

Я ещё добавил -a /home/dimon/temp/wallpaper.log , чтобы логгировать все запросы (для интереса, потом можно убрать).

Я запрашивал через обычный cron, через

$ crontab -e

и дальше добавляем задание:

*/15 * * * * wget -N -U Mozilla -a /home/dimon/temp/wallpaper.log -P /home/dimon/temp http://static.die.net/earth/mercator/1600.jpg

Можно делать через gnome-schedule, никакой разницы, если кому-то он интересен.

Автор: Дмитрий