Daily wallpaper tool for MacOS

For quite a while now Windows 8 and 10 had this neat feature to set Bing Daily Wallpaper as lock screen image or a wallpaper (via Bing Desktop app). Regardless of what might be the quality of Bing search engine, I think selection of those daily images is really well curated.

In the past, I’ve been using a bunch of shell scripts to get similar functionality in MacOS and there are also some paid apps available in AppStore. However, I wasn’t fully happy with either of those solutions so… I wrote my own Cocoa MacOS app to do the job!

Wallpaper Switcher works as a Preference Pane that integrates into the MacOS System Preferences. You can download it here, and simply open to install on your machine.

My intention was to make an easy-to-use, single click UI without the needed to mess around with shell scripts / command-line each time I reinstall or update MacOS. The app makes the entire process seamless and afterwards it just disappears into the background as if it was part of the OS.

Wallpaper Switcher uses MacOS native scheduler therefore it does not take any additional system resources, saving system memory and battery time if installed on a laptop. Primarily, I tested it with MacOS Mojave (10.14).

As a bonus, apart of Bing Daily Images, Wallpaper Switcher allows to use National Geographic Photo of the Day, images from Reddit posts (like the /r/wallpapers or /r/art that have a daily stream of community voted images), or just your own custom URL.

I’ve written the entire app using Objective-C and Apple’s Cocoa framework. Aside of the Preference Pane, the app has a small command-line tool embedded that does all the downloading and wallpaper setting in the background. To save resources, the daily updates are done using system built-in functionality of MacOS scheduler launchd. All this is setup and managed by the app based on user preferences set in the Preference Pane.

If anyone is interested how all this works under the hood, I published the entire source code and latest binaries on Github.