I admit: I'm fascinated by Apple's new Dynamic Desktop feature, which became widely available with the launch of macOS Mojave last week. There's just something magical about a wallpaper that shows a fixed-point view that changes as your day goes by.
However, Apple only offers two Dynamic Desktop wallpapers by default: One a beautiful photo of the Mojave desert, and the other a somewhat bland, ever-changing color gradient.
MacOS Mojave supports Dynamic Wallpapers. With macOS Mojave, Apple has introduced two new time-shifting desktops that match the hour of the day wherever you are. Now you can create them yourself or browse the gallery to find a wallpaper that fits your personal style. Dark Mode is one of the most popular additions to macOS — especially among us developer types. If you triangulate between that and Night Shift, introduced a couple of years prior, you get the Dynamic Desktop feature, new in Mojave. I admit: I'm fascinated by Apple's new Dynamic Desktop feature, which became widely available with the launch of macOS Mojave last week. There's just something magical about a wallpaper that shows. Apple’s Dynamic Desktop is available in the new version of macOS, and it can change the wallpaper of the Mac device automatically, but unlike Windows 10, it runs on a series of parameters like.
If that's not enough for you, there's a solution: A couple of them, in fact.
SEE ALSO: This app solves the most annoying thing about Mojave's Dark Mode
Back in June, developer Marcin Czachurski discovered that Apple's dynamic wallpapers are a bunch of images and a short text file describing certain properties of the image, such as altitude and azimuth (which pinpoint the position of the Sun when the image was taken).
With this knowledge, you can create a dynamic wallpaper yourself. The technical aspects of it, described here, aren't too complicated, and Czachurski even created a small command line app that makes it easier. But taking a bunch of high-quality photographs — especially if you want to do a fixed view of the same place at different times in the day — will likely be a bit much for most people.
Luckily, some crafty folks have already created dynamic wallpapers using this method. Czachurski himself shared a beautiful Google Earth-based wallpaper — you can find it here. And people on Reddit have shared their creations or findings here.
Dynamic wallpapers aren't simple images; they come in the form of .heic files. To install them, first set your wallpaper to any dynamic wallpaper in Mojave. Then just right click on the .heic file and choose 'Set Desktop Picture.' The wallpaper should show up and continue to dynamically change as your day goes on. To make things a little easier, you can also move the .heic files to the /Library/Desktop Pictures folders, and Mojave will then list them as options when you go to Settings — Destkop & Screen Saver. Beware, though, that if the files aren't properly constructed, things can get messy; for example, Apple might not show the correct icons for these new dynamic backgrounds.
There's an even easier solution. An app called 24 Hour Wallpaper, available on Apple's App Store offers a total of 58 wallpapers. Some of these have a fixed view, while some are simply a mix of different images related to the same topic, but they all look pretty good. The app is compatible with macOS Mojave but it also works on older macOS versions, down to macOS 11.11. The catch is that the app is not free; it costs $6.99.
I've tested the app and it has a surprising amount of options, including the ability to choose any location in the world, customize sunrise and sunset times and set a 'playlist' that continuously changes your dynamic wallpaper to a different set of images at an interval of your choosing. You can set different wallpapers on different displays as well — though I haven't found an option to set a different wallpaper for each virtual desktop.
There's even an option to let macOS do the work, which disables most of the extra features and essentially just sets a new dynamic wallpaper while the app resides in the background as a simple wallpaper gallery.
Hopefully, someone will create a repository of dynamic wallpapers down the road and finding these will be as easy as finding a regular wallpaper. For now, though, any of the methods described above should quench your thirst for dynamic desktop goodness.
To go with dark mode, macOS Mojave introduced a feature called “dynamic wallpapers”. Once enabled, a dynamic wallpaper would cycle between a number of related images1, showing one that was appropriate for the time of day.
Keeping with tradition macOS Catalina includes a new default wallpaper, and while it is a dynamic desktop, it works a bit differently: It only has two images rather than sixteen, and rather than switching between them based on time, the wallpaper is set based on whether your appearance preference is set to light or dark mode. This style is even acknowledged separately in System Preferences as “Automatic” rather than “Dynamic”.
While I was enamoured with Mojave’s dynamic desktops at first, I ended up switching to a regular wallpaper after some time. I don’t use dark mode only at night2, and so I’d often be left with a dark UI and a searing bright wallpaper.
So naturally I was excited to create my own dynamic desktops with this new style, but like with the previous ones, Apple hasn’t said anything about how one would go about doing that.
Mojave’s Dynamic Desktop Format
As it turns out though Mattt at NSHipster had done some digging around into the format for Mojave and that proved to be a good starting place.
Encoded within the
heic
file for the default dynamic wallpaper for Mojave was a metadata item named “solar”, which detailed the position of the sun in the sky in terms of its altitude and azimuth, for each of the images.The general format for the solar metadata was as follows:
The
d
and l
were bits that Mattt wasn’t able to figure out; more about those in a bit.And here’s the data in it’s XMP form:
Equipped with this information and the companion Playgrounds, I set about trying to figure out Catalina’s dynamic desktop format. It’s worth reading the NSHipster post before proceeding any further since I’m leaning heavily on that.
Catalina’s Dynamic Desktop Format
I hadn’t installed Catalina at this time, so I obtained the wallpaper from here (it’s the
Dynamic.heic
file).Reading the metadata, while there wasn’t a
solar
item to be found, there was one named apr
. Here’s the data included with that:Here's what I got after putting it through a
PropertyListDecoder
:Gone is all the solar positioning data from Mojave’s format, and this is much simpler. Just two keys, with two integer values.
d
and l
, it turns out, are the indices for the dark
and light
wallpapers, respectively. Their inclusion in the Mojave format suggests that the “Automatic” style might also be enabled for these wallpapers in the future, however this doesn’t seem to be true as of the first beta for Catalina.Mac os draw diagram. The XMP format is also slightly tweaked, with the
apple_desktop:solar
tag being replaced with an apple_desktop:apr
tagThat’s all the information we need to make new wallpapers of our own!
Generating Dynamic Wallpapers
Audiobook builder 2 1 full. The code below is tweaked from Mattt’s aforementioned Playground.
First we have references to the two light and dark wallpapers. These must be stored in the Playground’s
Resources
folder:Next, a location for where the final image must be stored:
Catalina makes some changes to how permissions work for certain folders including the desktop, so you might need to change the location.
We then create a
CGImageDestination
:Then we create a metadata item and populate it as per the XML structure:
We then convert the images to
CGImage
s and write them to file, including the metadata along with the first image:And lastly we finalise the conversion:
Once this has finished executing, we should have our image at the destination URL, ready for use!
Macos Dynamic Desktop Wallpapers
The automatic wallpapers work in Mojave too, although setting them somewhat glitches out the UI in System Preferences.
Even though iOS 13 ships with its own dynamic wallpapers, neither the official Catalina wallpaper nor any that I’ve generated seem to work there. Hopefully that’s just a beta bug.
Mojave Dynamic Desktop Download
You can find the full source code for the above on my fork of Mattt’s repo. I have also made some dynamic wallpapers from the wallpapers shipping with iOS 13, which can be downloaded here.
Macos Catalina Dynamic Desktop
- The two wallpapers bundled with Mojave, the eponymous “Mojave” and “Solar Gradients”, include 16 images each.↩
- I switch between themes enough that I even made my first Mac app, Nocturnal, to make it easier to do so.↩