Daily Wallpaper from Yandex Images

Yandex Images feature a fresh image each day, which can be downloaded and set as a wallpaper.

I’ve create a small script which will do this task for me automatically on Xfce4. You can find it on GitLab in my dot-files-etc repository.

Settings can, and of course should, be changed. Above all check pic_dir. In theory other service than Yandex Images can be used, see service if you’re interested.

Why am I using while loop + sleep, rather than cron? Well, not that there are any performance differences, the truth is, this was just easier for me, as I can hold the whole state in memory, rather than writing it to files.

Also, there’s no cron implementations installed on Arch by default; the suggested way of doing this would be systemd/Timers, … honestly, I have no desire writing unit files for such a simple matter.

Edit:

After using this script for a while, I must say I really adore Yandex’s images and am happy to see Slovenia being among them from time to time. Two changes I’ve made since I’ve published this script are:

  1. I’ve added offset so that bottom copyright statement is hidden (as my panel, which would normally cover it, is on top); that might not completely agree with the law, sorry. I do use this only as a background on my personal computer, and that statement was an ugly distraction.
  2. I was often really curious where a photo was taken, so I decided to add description, which I grab from Yandex Images page, and add it on the bottom of the wallpaper.
  3. I’m using LED light strip on my table, so for a while I’ve applied background color from a wallpaper to it. I was setting color of each led diode individually, which meant I had to slice wallpaper to 30 segments and extract color from each segment individually. I was not happy with colors changing daily, so I’m not doing that anymore. I’ll write more about LED lights and how to control them from desktop in future.

This is archived version of blog, preventing broken links. This version will stay online indefinitely.