How macOS Auto Appearance actually works

When you enable Auto in System Settings under Appearance, macOS does not make a network call to a weather service. It does not read a cloud sensor. It uses CoreLocation to determine your device's geographic coordinates - the same framework used when you ask Maps for directions - and feeds those coordinates into an astronomical calculation that produces a sunrise time and a sunset time for your specific latitude and longitude on today's date.

That's the entire mechanism. When the clock passes the calculated sunset time, macOS switches to Dark Mode. When it passes sunrise, it switches back to Light Mode. The system appearance is locked to astronomical time, not to actual sky conditions.

This calculation happens entirely on-device. There is no API call to Apple's servers, no weather check, no ambient light sensor reading (beyond what the display brightness auto-adjustment does separately). macOS Auto Appearance is, at its core, a clock-based feature that knows where you are geographically and uses that to determine what the sky should theoretically look like right now.

The key word is "theoretically." Astronomical sunrise and sunset are calculated from orbital mechanics. They describe when the sun crosses the horizon on a cloudless day. Whether the sky is actually delivering that light - or whether it is hidden behind a solid ceiling of grey cloud - is information that the operating system never checks.

Why Apple chose sunrise and sunset, not weather

This is not an oversight. Apple's choice of astronomical time over weather conditions is a deliberate design decision that reflects three core priorities.

Predictability. Users can look at a clock and know exactly when their Mac will switch appearance. There is no ambiguity about whether "partly cloudy" qualifies as cloud enough to trigger a switch. The behaviour is deterministic and easy to reason about. When Auto Appearance switches at 8:47pm tonight, it will switch at 8:47pm without any dependency on network availability, API uptime, or condition classification.

Privacy. Weather detection requires active location data sent to a weather service at regular intervals. Apple's implementation of Auto Appearance needs your location exactly once at startup or when location changes significantly - and that location never leaves the device. It is used only to look up a precomputed sunrise/sunset table. No ongoing network calls, no data sharing with third parties, no location history.

Battery efficiency. Regular weather polling, even at modest intervals, adds up. A background process querying WeatherKit every 15-30 minutes, maintaining a location fix, and processing condition codes represents a measurable drain compared to a one-time astronomical calculation. For a feature that affects every Mac user, including those on battery-powered laptops, Apple's instinct to keep it lightweight is reasonable.

Apple has not added WeatherKit integration to system appearance, and it would require genuine trade-offs to do so: continuous background location permission, regular network access, and the complexity of condition thresholds. For now, that gap is filled by third-party apps.

The problem with sunrise and sunset in northern latitudes and cloudy climates

For users in consistently sunny climates with predictable daylight hours, the astronomical model works reasonably well. For a significant portion of the world's population, it produces results that feel wrong nearly every day of the year.

Consider Scotland. Edinburgh receives an average of 1,450 hours of sunshine per year - roughly 4 hours per day on average, but heavily concentrated in summer. For much of autumn, winter, and spring, the sky is overcast for the majority of daylight hours. A Mac with Auto Appearance switched on will remain in light mode through an entire overcast November day - grey outside from dawn to dusk - and only switch to dark mode as the astronomical sunset approaches 4pm. By that point, the ambient light indoors has been low for hours.

The same problem affects users in the Pacific Northwest of the United States, where Seattle averages 226 cloudy days per year. Or the UK broadly, where overcast conditions are the default rather than the exception across most of the year. Or Scandinavia, where winter days are both short and predominantly grey. In all of these climates, a sunrise-to-sunset appearance switch is frequently misaligned with actual ambient light conditions.

There is also a seasonal mismatch in the opposite direction. In far northern or far southern latitudes, midsummer can bring astronomical sunset at 10pm or later. A Mac in Auto Appearance mode will stay in light mode through a bright summer evening - which is appropriate - but it also stays in light mode on a cool, overcast July afternoon when the sky is delivering less light than a clear winter morning. The clock says light mode; the environment suggests otherwise.

The core gap

macOS Auto Appearance answers the question "what time is it?" when the relevant question for appearance comfort is "how much light is my environment actually delivering right now?"

How Apple WeatherKit enables weather-aware dark mode

Apple acquired Dark Sky in March 2020, shut down the Dark Sky API in 2022, and launched its replacement - WeatherKit - at WWDC 2022. WeatherKit is available to developers enrolled in the Apple Developer Program and provides access to Apple's meteorological data pipeline, which combines data from multiple national weather services and proprietary modelling.

WeatherKit provides, among other data, a condition code for current weather at a given location. This condition code is a structured value that classifies the current state of the sky: Clear, Mostly Clear, Partly Cloudy, Mostly Cloudy, Cloudy, Overcast, Drizzle, Rain, Heavy Rain, Thunderstorms, Snow, and so on. These condition codes are updated regularly and reflect actual sky conditions, not astronomical calculations.

A third-party app can request the current condition code for the user's location via WeatherKit, evaluate whether that condition falls into a "dark" category, and switch macOS Appearance accordingly. This is precisely what Solace does. The macOS system's built-in Auto Appearance never consults WeatherKit. But an app running in the menu bar can do so on a regular interval and apply the result to the system appearance - effectively building weather awareness on top of the operating system's existing appearance switching mechanism.

This approach is fully supported by Apple's APIs. WeatherKit is a first-party service. The ability to change system appearance via API is a documented macOS capability. Solace combines them in a way that macOS itself does not.

How Solace handles weather detection

Solace checks current weather conditions via WeatherKit at regular intervals when weather-aware switching is enabled. The check uses your device's location - which requires location permission, the same permission any weather app requests.

The condition threshold is straightforward: overcast, cloudy, rainy, drizzle, and stormy conditions trigger a switch to dark mode. Clear and partly cloudy conditions stay in or return to light mode. The logic mirrors the intuition most users already have - when it looks properly grey outside, dark mode makes sense; when it's clear, light mode is appropriate.

Critically, all processing happens on-device. The WeatherKit request goes from your device to Apple's servers - the same data flow as Apple's own Weather app. Solace's servers receive nothing. Your location is never transmitted to Solace. The decision to switch appearance is made locally, by the app, based on the condition code Apple returns.

This is a meaningful distinction. Weather-aware dark mode in Solace is not sending your location to a third-party server and receiving a custom response. It is using Apple's own weather infrastructure, under Apple's own privacy frameworks, to provide a feature that Apple's system appearance switching does not yet offer natively.

For a complete setup guide, see How to Make Dark Mode Follow the Weather on Mac. If you want to understand how weather-based switching compares to scheduled switching, How to Auto-Switch Dark Mode at Sunset on Mac covers both approaches.

Is weather-aware dark mode worth the battery cost?

The honest answer is: the cost is small enough that it is unlikely to be a deciding factor for most users.

WeatherKit polling is interval-based, not continuous. Solace checks conditions periodically - not every few seconds, but at intervals designed to catch meaningful weather changes without generating constant network traffic. A weather check is a lightweight HTTP request returning a small JSON payload. It is not streaming location data or running a background GPS lock continuously.

For comparison: the display itself is the largest power consumer on a Mac laptop. A single percentage point of screen brightness reduction saves more energy than a day's worth of periodic weather checks. If battery life is a concern, reducing display brightness is orders of magnitude more impactful than disabling weather-aware appearance switching.

The location permission does carry a small ongoing cost - CoreLocation needs to provide a position for the WeatherKit request. But again, this is comparable to having a weather widget active on your desktop or keeping a weather app running in the background, both of which are common for users who care about knowing current conditions.

Solace - $4.99, yours forever

Automate your Mac's appearance with weather-aware switching, custom scheduling, and colour temperature control. One-time purchase, zero data collection.

One-time purchase. No subscription.