Can you keep one app in light mode while the rest of your Mac uses dark mode?
Yes - but not through System Settings. macOS only exposes a system-wide appearance toggle. There is no per-app switch in the GUI. The underlying mechanism, however, does support per-app overrides through the user defaults system.
The flag is called NSRequiresAquaSystemAppearance. When it is set to YES for a specific app's bundle identifier, that app renders in the classic Aqua (light) appearance regardless of the system setting. The rest of your Mac, and every other app, is unaffected.
The command looks like this:
defaults write com.example.AppName NSRequiresAquaSystemAppearance -bool YESYou replace com.example.AppName with the actual bundle identifier of the app you want to force into light mode. The sections below show exactly how to find that identifier and apply the command step by step.
How do you find an app's bundle identifier on Mac?
Every macOS app has a unique bundle identifier - a reverse-DNS string like com.apple.Safari or com.tinyapp.TableFlip. You need this string to target the right app with the defaults write command. There are three reliable ways to find it.
Method 1: osascript (fastest)
Open Terminal and run the following, replacing AppName with the exact name of the app as it appears in your Applications folder:
osascript -e 'id of app "AppName"'For example, to get Preview's bundle ID:
osascript -e 'id of app "Preview"'Terminal will return the bundle identifier on the next line - in this case, com.apple.Preview. This works for any app that is installed on your Mac, even if it is not currently running.
Method 2: Info.plist inside the app bundle
Right-click the app in Finder and choose Show Package Contents. Open the Contents folder and find Info.plist. Open it in a text editor or Xcode. The value next to the key CFBundleIdentifier is the bundle ID.
Method 3: Activity Monitor
Open Activity Monitor, find the running app in the list, double-click it, and look for the Bundle Identifier field in the info panel. This only works while the app is running.
Common app bundle identifiers
Here are the bundle IDs for frequently used Apple apps that people commonly force to light mode:
| App | Bundle Identifier |
|---|---|
| Finder | com.apple.finder |
| Safari | com.apple.Safari |
com.apple.mail |
|
| Preview | com.apple.Preview |
| Photos | com.apple.Photos |
| Calendar | com.apple.iCal |
| Notes | com.apple.Notes |
| Terminal | com.apple.Terminal |
What is the Terminal command to force light mode for a specific app?
Once you have the bundle identifier, the full process takes under a minute. Here is the complete step-by-step:
- Open Terminal from Applications › Utilities › Terminal, or search for it in Spotlight.
- Find the bundle ID using:
osascript -e 'id of app "AppName"'- copy the result. - Run the override command, replacing the placeholder with your app's actual bundle ID:
defaults write com.apple.Preview NSRequiresAquaSystemAppearance -bool YES - Completely quit the app with Cmd+Q. Closing the window is not enough - the app must fully stop.
- Relaunch the app. It will now open in light mode even when your system is in dark mode.
- To undo the override at any time, see the revert command in the next section below.
The preference only takes effect after a full relaunch. If you set the flag while the app is running and then just bring it to the foreground, nothing changes. Quit with Cmd+Q, wait a moment, then reopen the app.
Why would you want to force an app to light mode?
There are several common reasons to keep a specific app in light mode while the system runs dark mode:
Photo and colour-sensitive apps
Apps like Adobe Lightroom, Affinity Photo, and Pixelmator Pro are frequently cited as candidates for this override. Dark mode changes the surrounding chrome of the editing environment, which can affect how you perceive the colours and exposure of images you are editing. Many professional photographers prefer the neutral grey interface that light mode provides for colour work.
Apps with poor dark mode implementations
Not every app implements dark mode well. Some third-party apps have low-contrast text, missing icons, or visually broken layouts in dark mode. If an app is hard to use in dark mode and the developer has not fixed it, forcing it back to light mode is a practical workaround while you wait for an update.
Email clients with broken HTML rendering
Some email clients apply a dark mode inversion to incoming HTML emails, which can make branded emails look completely wrong - broken colours, illegible text on dark backgrounds, or inverted images. Forcing the email app to light mode prevents this, especially if you regularly preview email designs or review marketing correspondence.
Design and presentation software
If you work in tools like Sketch, Figma (native app), or presentation software that has its own content area, the surrounding macOS chrome can bleed into your perception of design work. Light mode provides a more neutral, print-like environment for these tasks.
Which apps have their own light/dark mode settings?
Several popular apps include their own built-in appearance preferences, completely independent of the macOS system setting. For these apps, you should use their internal settings rather than the Terminal override - the internal settings are more robust and will not break on macOS updates.
- Slack - Preferences › Appearance › Theme. You can set it to Light, Dark, or System.
- Discord - User Settings › Appearance › Theme. Supports Light, Dark, and Amoled (pure black).
- VS Code - Preferences › Color Theme. Choose from hundreds of light and dark themes independently of the system.
- Figma (browser) - Account Settings › Appearance. Set independently of the system.
- Notion - Settings & members › Appearance. Supports Light, Dark, and System.
- Obsidian - Settings › Appearance › Base theme. Set independently of the system.
- iTerm2 - Preferences › General › Appearance. Supports Light, Dark, and System.
- Spotify - Uses its own dark theme by default and cannot be changed through macOS settings.
For these apps, the NSRequiresAquaSystemAppearance command may still work, but the app's own setting takes precedence in most cases. Always check internal preferences first.
If you want full control over when your Mac switches between modes - not just individual app overrides - see How to Schedule Dark Mode on Mac (3 Methods).
How do you undo a per-app dark mode override?
Reverting is simple. Open Terminal and run the defaults delete command with the same bundle identifier:
defaults delete com.apple.Preview NSRequiresAquaSystemAppearanceReplace com.apple.Preview with the bundle ID of the app you want to revert. Then fully quit and relaunch the app. It will pick up the system appearance again as normal.
If you want to check whether an override is currently active before reverting, you can read the current value:
defaults read com.apple.Preview NSRequiresAquaSystemAppearanceIf the command returns 1, the override is active. If it returns an error like Domain com.apple.Preview does not contain key NSRequiresAquaSystemAppearance, no override is set and the app follows the system setting.
To list every app on your Mac that currently has this override active, run: defaults find NSRequiresAquaSystemAppearance in Terminal. The output shows all domains where the key exists.
How does per-app overriding fit with Solace?
Solace controls the system-wide dark mode schedule - switching your entire Mac between light and dark based on solar position, custom times, or weather conditions. Per-app Terminal overrides sit on top of this and are respected: if you have forced an app into light mode with NSRequiresAquaSystemAppearance, it will stay in light mode even when Solace triggers a system-wide switch to dark mode.
This makes the two tools complementary. You can use Solace to automate when your Mac goes dark at sunset, and use Terminal overrides as targeted exceptions for the one or two apps where you always want light mode regardless of time or weather. The system-level toggle and the per-app preference operate independently.
If your Mac is not responding to appearance changes at all, see Dark Mode Not Working on Mac: How to Fix It for diagnostics.
Want to understand all the ways to control dark mode per app on macOS? Read How to Set Dark Mode Per App on Mac for a complete overview.
Frequently asked questions
Is there a way to disable dark mode for one app without using Terminal?
Not natively in macOS. System Settings only controls system-wide appearance - there is no GUI option to override dark mode for individual apps. Some apps like Slack, Discord, and VS Code have their own built-in appearance settings; use those instead of Terminal for those specific apps.
Will the NSRequiresAquaSystemAppearance command work for every app on Mac?
It works for most non-sandboxed apps. Heavily sandboxed apps from the Mac App Store may ignore the preference entirely. If an app ignores the setting after a relaunch, it is likely sandboxed or uses its own internal appearance manager. In those cases, check whether the app has its own appearance settings in its preferences.
Does forcing light mode for one app slow it down?
No. The NSRequiresAquaSystemAppearance flag only sets a display preference. It has no effect on CPU usage, memory, or app performance. The flag simply tells the app which appearance variant to load at launch - it is equivalent in cost to the app reading any other preference value.
Can I force multiple apps to stay in light mode?
Yes. Run the defaults write command once for each app's bundle identifier. Each override is stored independently in the app's user defaults domain, so they do not interfere with each other. You can have as many per-app overrides as you need.
Does the per-app light mode setting survive macOS updates?
Minor macOS updates generally preserve user defaults. Major version upgrades - for example, moving from Sequoia to a future major release - can reset user defaults for some apps. After a major upgrade, check whether your overrides are still active by relaunching the affected apps and seeing whether they follow the system appearance. If they do, the preference was cleared and you will need to re-run the defaults write command.
Solace - $4.99, yours forever
Dark mode scheduling, colour temperature, wallpaper sync, and weather-aware switching. One app, zero data collection.
Buy NowOne-time purchase, no subscription. Learn more