Equinox builds solar, time and appearance wallpapers on macOS
🌇 🌃 Create dynamic wallpapers for macOS.
At a glance
- What is it?
- Equinox is a small Swift app that turns a folder of your own photos into macOS Dynamic Desktop wallpapers that follow the sun, follow a clock, or swap with the system appearance. The interesting parts are the export format and the Finder step you still have to perform by hand afterwards.
- Who is it for?
- Equinox fits a narrow and clear user: a Mac owner holding a folder of photos who does not want to learn the Dynamic Desktop format. It earns its place for Time and Appearance wallpapers, which need images and a schedule and nothing else, and for anyone willing to type a place and a date into the Solar calculator.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 28 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 6, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Sun position picks the image in a Solar wallpaper
A Solar wallpaper is keyed to the sun rather than to a clock, so the picture on the desktop tracks the sun's position and changes with the time of year. Building one asks for two inputs and nothing else: where the photo was taken, and when. The rest comes from the Solar calculator inside the app. You pick a place, a date and a time on the Sun timeline; if you do not know the exact minute, you read the sun's height off that timeline and match it against the shadow in your own photo. When the position looks right, you drag it, or copy it, onto the image.
Nothing is read out of the picture itself. Place, date and time are typed in by hand, because the calculator can only compute a position from values a person supplies. That single design choice sets the ceiling on accuracy: a photo taken two continents away, or copied from a message thread with its metadata stripped, cannot be rescued after the fact.
Time and appearance wallpapers skip the astronomy
Two of the 3 wallpaper types need no solar maths at all. A Time wallpaper changes through the day according to a schedule you define, which means the switching times are yours rather than the sun's. How often such a wallpaper may switch is not documented, so a wallpaper meant to refresh every fifteen minutes cannot be distinguished from an hourly one using the documentation alone. For a test, macOS hands you a blunt instrument: change the clock and watch.
An Appearance wallpaper is the thinnest of the three. It takes two images, one for Light Mode and one for Dark Mode, and the system picks the right one when the appearance flips. No coordinates, no timeline, no calculator screen. That shape maps onto the Light & Dark Desktop wallpaper type, while the Solar type maps onto Dynamic Desktop, and both formats arrived with Mojave. Equinox is a generator for formats macOS already understands, not a new wallpaper system.
Exporting leaves the install to a Finder service
The last step of the workflow is not inside the app. After saving a wallpaper, you right-click the file and choose Services, then Set Desktop Picture. Equinox writes the file; a Finder service installs it. That split has consequences worth naming. There is no in-app apply button, the export destination and filename are not documented, and swapping between several wallpapers means repeating the right-click for each file rather than switching inside a picker.
The payoff of writing into the macOS wallpaper format directly is that nothing extra has to run on the machine afterwards. No helper daemon, no login item, no agent app holding the desktop hostage. A wallpaper that never changes after you set it sends you to macOS settings rather than back to the exporter, which is a reasonable boundary for an app distributed through the Mac App Store and also means the app cannot fix a misconfigured system on your behalf.
Why a dynamic wallpaper can freeze on the desktop
Applying the file is not enough on its own. The FAQ entry for a wallpaper that never changes puts the prerequisite in macOS itself: Desktop & Screen Saver has to be pointed at a Dynamic type wallpaper first. Open Desktop & Screen Saver in Settings or Preferences, choose any Dynamic Desktop wallpaper, set its type to Dynamic, and only then right-click your own file and pick Services, Set Desktop Picture again. The order matters, because the fix as written changes the system setting before it re-applies your file, and a user who jumps straight to the right-click sees nothing happen.
For checking a wallpaper, the documented method is to open Settings or Preferences, go to Date & Time, and change the time so the wallpaper updates. No preview mode or time scrubber is described, so verifying a twelve-hour span means moving the system clock and moving it back. Worth knowing before you build a schedule around a photo you have never seen change.
Where to get Equinox 7.0 and the older 6.0 build
Equinox is distributed two ways, and the README links both, plus the project site at equinoxmac.com.
https://apps.apple.com/us/app/equinox-create-wallpaper/id1591510203That first line is the Mac App Store listing, which is where most people should start, since the store handles updates without any version choice.
https://github.com/rlxone/Equinox/releases/tag/v6.0The second line is the pinned build for older systems. Version 7.0 and later requires macOS 12.0, Monterey or newer. On 10.14 Mojave or 10.15 Catalina the answer is fixed rather than adjustable: install Equinox 6.0, the newest build that runs there. No installer command, no package manager entry and no build-from-source recipe is documented.
Read that against the app's own description, which opens by saying that macOS supports Dynamic Desktop and Light & Dark Desktop starting with Mojave. The sentence is accurate about the platform and wrong about what you can install today, so a Catalina user who reads it expects the current build and gets none. The real boundary appears only in the requirements line further down, and the FAQ fix for a frozen wallpaper carries no version tag, so it stays unclear whether it applies to the 6.0 path as well.
Twelve top-level entries under one Xcode workspace
The repository is an Xcode workspace rather than a Swift package, so nothing here installs with a package manager. Twelve entries sit at the top level, 6 of them the workspace and the Swift targets:
Equinox.xcworkspace/
Equinox/
EquinoxAssets/
EquinoxCore/
EquinoxUI/
build/`EquinoxCore` and `EquinoxUI` are split away from the `Equinox` app target and the `EquinoxAssets` resource target, which is the usual arrangement when geometry and rendering work need to sit outside the interface layer. A SwiftLint configuration, `.swiftlint.yml`, sits at the root, and the build badge points at a GitHub Actions workflow called `workspace.yml`, so some automated build exists. What that workflow runs on, whether it signs anything, and how a fork is built or tested are not documented, and no Xcode version is pinned anywhere in the README. The split also means resources, including every translated string, live in `EquinoxAssets` rather than in the app target.
Adding a language takes 7 steps across two projects
Adding a language is the one contribution path the project spells out, and it costs 7 steps rather than a single strings file. Fork main, branch as `translation-xx` with the language code, add that language to 2 Xcode projects named Equinox and EquinoxAssets, add it to the localization languages of `Localizable.strings` inside EquinoxAssets, replace the strings, update the translation section of the README with your name, and open a pull request.
The list names 10 shipped languages, including 3 Chinese variants: Simplified, Traditional, and Traditional for Hong Kong. Each credits its contributor instead of routing the whole language through one translator. Every step is an Xcode step rather than a files-only change, and no build, test or signing command appears anywhere in those 7 steps, so the practical cost of contributing a language is an Apple toolchain plus a branch convention that a reviewer has to check. Translators on machines below macOS 12.0 would also be working against the 6.0 build rather than the current one.
SolarNOAA does the sun maths while Equinox times it
Astronomy is not written inside the app. The sun's position comes from SolarNOAA, a separate repository by the same author, while Equinox supplies the timeline, the place picker and the export. The practical consequence is that a correction to the solar geometry lands in SolarNOAA first, so the two repositories have to move together and can drift out of step, leaving a user on an older Equinox with older maths than the current interface expects.
The alternative to a Solar wallpaper is not another program but the other two types in the same app. If you cannot say where or when a photo was taken, Time asks for a schedule and no coordinates at all; if you want no schedule either, Appearance takes 2 images and stops there. What none of the three types do is supply the pictures: no bundled library of presets is described and there is no route to stock imagery, so you bring your own files. That constraint is the app's whole bargain, and it is also why the three types feel like a menu rather than a toolkit.
The repository is not archived, the last push and the 7.0 build both date from 2026-09-25, and the code is MIT licensed.
Editorial conclusion
Equinox fits a narrow and clear user: a Mac owner holding a folder of photos who does not want to learn the Dynamic Desktop format. It earns its place for Time and Appearance wallpapers, which need images and a schedule and nothing else, and for anyone willing to type a place and a date into the Solar calculator. Leave it if your Macs run older than macOS 12.0 and you will not install a second build from the v6.0 link. Before adopting, confirm that Desktop & Screen Saver in your account can be set to a Dynamic type, because Equinox cannot perform that step for you.
Frequently asked questions
Which macOS versions does Equinox 7.0 run on?
Equinox 7.0 and later require macOS 12.0, Monterey or newer. On macOS 10.14 Mojave or 10.15 Catalina you install Equinox 6.0, the newest build compatible with those systems.
Why does my Equinox wallpaper not change during the day?
The README treats this as a macOS setting rather than an export problem. Open Desktop & Screen Saver, choose any Dynamic Desktop wallpaper and set its type to Dynamic, then right-click your file and choose Services, then Set Desktop Picture.
How do I test an Equinox solar wallpaper without waiting a day?
Open Settings or Preferences, go to Date & Time, and change the time so the wallpaper updates. No preview mode or time slider is described in the README.
Does Equinox read the date and location from my photo automatically?
No automatic reading is described. In the Solar calculator you choose the place, the date and the time yourself, and if the exact time is unknown you estimate the sun's height on the timeline and match it to your photo.
How do I add a new language to Equinox?
Fork the main branch, create a branch named `translation-xx`, add the language to the Equinox and EquinoxAssets Xcode projects and to the `Localizable.strings` localization languages in EquinoxAssets, update the strings and the README section, then open a pull request.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/rlxone-equinox)