Should developers use dark mode?

The answer, for most developers, is yes - but with some nuance about when and why it helps. The Stack Overflow Developer Survey consistently shows that more than 70% of developers prefer dark IDE themes, making it the clearest majority preference of any single developer tool category. Dark mode is not just aesthetic preference; it has practical benefits in specific conditions.

In low-light environments - which describes a significant portion of developer work, especially in the evenings and in basement offices - dark mode reduces total screen luminance. Less luminance means your eyes process less light overall, which reduces the contrast between the bright screen and the dimmer surroundings. That mismatch is one of the primary contributors to eye fatigue during long sessions.

The subjective comfort factor also matters. If you are more comfortable in dark mode, you will maintain focus for longer without noticing visual discomfort prompting you to look away. Ergonomic interventions are only effective when applied consistently; the one you will actually use wins.

The caveat is environment. In a brightly lit office, light mode may be less tiring because the white backgrounds match the surrounding brightness rather than contrasting with it. The scientifically sound approach:

For developers who want to dive deeper into the research: Dark Mode and Productivity: What the Research Actually Says covers the evidence in detail.

What are the best macOS display settings for long coding sessions?

Five macOS system settings make the most difference for developer display comfort. Each targets a different mechanism of fatigue.

Brightness: 50–70% indoors

Most Macs ship with brightness calibrated for outdoor or showroom environments - too high for the typical dim-to-medium light level of an indoor office or bedroom desk. Running at full brightness creates a significant luminance mismatch between the screen and surroundings, which forces your pupils into constant micro-adjustment. Across a 6–8 hour session, that accumulates into real fatigue.

The practical range for indoor use is 50–70%. Press F1 to lower brightness, or open System Settings > Displays and use the Brightness slider directly. If your Mac supports Auto-brightness (also in Displays settings), enabling it lets the ambient light sensor handle adjustments automatically as your environment changes throughout the day.

Night Shift: maximum warmth from 6pm

Night Shift shifts your display towards warmer colour temperatures (lower Kelvin values) to reduce the proportion of short-wavelength blue light the screen emits. For developers, the two key benefits are:

Enable Night Shift at System Settings > Displays > Night Shift. Set the schedule to Sunset to Sunrise or Custom and drag the colour temperature slider all the way to More Warm. For a more precise schedule that adjusts daily to the actual sunset time, use Solace instead.

True Tone: enabled

True Tone uses the ambient light sensors built into modern Macs to automatically adapt the display's colour temperature to match the colour temperature of the environment around you. When your desk lamp shifts warmer in the evening, True Tone shifts the screen to match. This reduces the visual mismatch between the display and its surroundings, which decreases the adaptation effort your eyes and visual cortex make throughout the day.

Enable it at System Settings > Displays - check the True Tone checkbox. Available on all Mac models released from 2018 onwards.

Increase Contrast: enabled

Developers often work with dense information layouts: syntax-highlighted code, terminal output, log streams, diff views. The macOS Increase Contrast accessibility setting strengthens the distinction between UI element borders, text, and backgrounds - which translates directly to improved readability of syntax highlighting and multi-pane editor layouts.

Enable it at System Settings > Accessibility > Display > Increase Contrast. It is not a dramatic visual change, but it reduces the parsing effort required when scanning dense code across a long session.

Display resolution: Default or More Space, not maximum

Running your Mac at its maximum pixel density makes UI elements smaller and forces you to lean in or squint to read code. Find the balance at System Settings > Displays > Resolution. The Default (Retina) setting is optimised for text sharpness at a comfortable reading size. More Space gives you more screen real estate but at the cost of slightly smaller text - viable on a large external monitor, less suitable on a 14″ MacBook Pro screen used alone.

Quick win

The single highest-impact change for most developers is dropping brightness. If you currently code at 80–100% brightness, reducing to 60% immediately cuts the luminance contrast between screen and surroundings and is noticeable within the first hour.

What editor and terminal settings work best with macOS display settings?

macOS display settings and editor settings interact. Getting both right produces a setup that is comfortable across an all-day or late-night session.

Choose a dark theme with verified contrast ratios

Not all dark themes are equal. A poorly designed dark theme can produce insufficient contrast between syntax colours and the background, which is more tiring to read than a well-calibrated light theme. The recommended options all meet or exceed WCAG AA contrast ratio requirements:

Use a monospace font designed for code readability

The font you code in has a direct effect on parsing effort during long sessions. Fonts designed for code reading include features like distinctive character differentiation (l vs I vs 1, O vs 0) and optional ligatures that reduce visual noise in common programming operators.

Set your editor font size to 15–16px minimum. Anything below 14px requires sustained extra effort to parse and accelerates fatigue. Set line height to 1.5–1.6 - tighter line spacing increases visual density and the effort required to track lines across the full width of the editor.

Match your editor theme to the system appearance

Many editors - VS Code, Zed, Nova - support following the macOS system appearance setting. When you configure Solace to switch the system to dark mode at sunset, your editor switches alongside it automatically. This means the transition happens once across your entire environment without you needing to change settings in each individual app.

In VS Code, set "window.autoDetectColorScheme": true and configure "workbench.preferredDarkColorTheme" and "workbench.preferredLightColorTheme" to your preferred themes for each mode.

Terminal: dark theme with clear colour coding

Your terminal spends a large proportion of developer screen time displaying error messages, build output, and git diffs - all of which rely on colour coding for rapid scanning. A dark terminal theme with distinct, high-contrast colour assignments for errors (red), warnings (yellow), file types, and status signals reduces the time and effort required to parse output.

Both iTerm2 and the built-in Terminal support custom themes. iTerm2's Profiles system allows you to set separate light and dark profiles that switch automatically with the system appearance - another reason the macOS system appearance automation from Solace pays dividends across your full toolchain.

Related

For a guide to dark mode across all your apps without the side effects: How to Use Dark Mode Without Straining Your Eyes on Mac.

How do you set up automated display settings for development workflows?

Developers work irregular hours. A senior engineer doing a late-night incident response, a freelancer starting work at noon, a remote developer spanning two time zones - none of these patterns are served by a fixed 9pm Night Shift schedule. The correct approach is automation that adjusts to the actual day, not a rigid time you set once and forget.

Solace solves this with sunset-based scheduling. Rather than activating at a fixed time, Solace calculates the actual sunset time at your location each day and triggers your configured display changes at that moment. In winter, sunset at 4:30pm means your display warms earlier. In summer, sunset at 9pm means the transition happens later. The schedule is always calibrated to when you actually need it.

The workflow is configured once:

  1. Install Solace - $4.99 one-time purchase from the Mac App Store or theodorehq.com/solace. Open it from the menu bar.
  2. Set your dark mode trigger - configure dark mode to activate at sunset. Solace passes the change to macOS system appearance, which means every app that respects system appearance switches simultaneously.
  3. Set your colour temperature trigger - configure warm colour temperature to activate at the same time, or slightly before (e.g., 30 minutes before sunset) for a gradual transition.
  4. Set a morning reset - configure light mode and neutral colour temperature to restore at your preferred wake time or at sunrise. Your daytime environment returns to normal automatically.
  5. Leave it running - Solace operates from the menu bar with zero user input after configuration. It will not interrupt terminal sessions, break your IDE window state, or trigger focus mode alerts.

The practical value is consistency. Every day, the transition happens at the right time. You never open a pull request at 11pm in a bright blue-white editor environment because you forgot to toggle Night Shift. The display is always calibrated for the time of day, which means less accumulated fatigue and better sleep at the end of the session.

See also: How to Separate Your Dark Mode and Night Shift Schedules on Mac for more on using different schedules for appearance and colour temperature independently.

Developer note

All location calculations for Solace's solar scheduling happen entirely on-device. No location data is sent to any server. For developers who are privacy-conscious or working under data-restricted environments, this matters.

What are the best external monitor settings for developers?

Many developers use a Mac laptop connected to one or more external monitors. The display settings that matter most differ slightly from a pure laptop setup.

Resolution

For code readability, you need sufficient pixel density to render text sharply at your working font size. On a 27-inch external monitor, 1440p (2560×1440) is the minimum that produces clean text rendering at a comfortable reading distance. 1080p on a 27-inch screen produces noticeably softer text edges, which increases the effort required to parse syntax highlighting across a full day. 4K on 27 inches gives you more flexibility - you can run at 2x scaling for Retina-equivalent sharpness while maintaining a comfortable working area.

Night Shift on external monitors

Night Shift applies system-wide and enables on external monitors that are hardware-compatible with the feature. Most modern monitors connected via USB-C or HDMI through a modern Mac will support it. For external monitors without True Tone support, Solace's colour temperature scheduling acts as a direct substitute - the warm colour shift applies via macOS's display pipeline and does not require hardware support from the monitor itself.

Dual-monitor setups

If you run a dual-monitor setup - common for developers who need a reference panel, documentation, or a separate browser window alongside their editor - visual fatigue can come from the adaptation effort your eyes make when moving between two screens set to different brightness levels or colour temperatures.

Calibrate both screens to the same brightness and colour temperature. If your primary monitor has True Tone and your secondary does not, manually adjust the secondary monitor's brightness to match, and rely on Night Shift and Solace scheduling to warm both simultaneously at the same time each evening.

Monitor position

Position your external monitor 50–70cm from your eyes, with the top of the screen at or slightly below eye level. This follows OSHA and American Optometric Association ergonomic guidance. At this distance, a 27-inch monitor subtends approximately the right visual angle for reading code without needing to hold a fixed head position. Closer than 50cm increases near-focus demand on the ciliary muscles; further than 80cm makes 15px text genuinely small.

Also useful

For a deeper look at what causes eye fatigue during long development sessions: Computer Vision Syndrome on Mac: What It Is and How to Fix It.

Recommended developer display settings: complete reference table

The table below consolidates all the recommended settings into a single reference. Use it as a checklist when setting up a new Mac or external monitor.

Setting Recommended Value Where to Find It
Brightness 50–70% F1 key / System Settings > Displays
Night Shift Maximum warmth, from 6pm (or use Solace) System Settings > Displays > Night Shift
True Tone Enabled System Settings > Displays
Increase Contrast Enabled System Settings > Accessibility > Display
Dark Mode Evening / always (or automate at sunset) System Settings > Appearance
Display resolution Default (Retina) or More Space System Settings > Displays > Resolution
Editor font size 15–16px minimum Editor preferences
Editor line height 1.5–1.6 Editor preferences
External monitor resolution 1440p minimum for 27″ System Settings > Displays (per monitor)
Monitor distance 50–70cm, top at eye level Physical setup

Frequently asked questions

Should developers use dark mode?

Most developers do, and for good reason. Stack Overflow's Developer Survey consistently shows 70%+ of developers prefer dark IDE themes. In low-light environments - typical of evening and night coding - dark mode reduces luminance contrast and eye fatigue during long sessions. In a brightly lit daytime office, light mode is a workable alternative. Best practice: automate the switch so dark mode activates at sunset and light mode returns in the morning.

What brightness should developers use on Mac?

50–70% for indoor use. The default brightness on most Macs is calibrated for showroom or outdoor conditions - too high for the typical dim-to-medium light of an indoor office. Overly bright screens create luminance contrast between the display and surroundings, which forces pupils into constant adaptation. Press F1 to lower brightness or adjust in System Settings > Displays. Enabling Auto-brightness allows the ambient light sensor to handle adjustments as your environment changes.

What is the best font size for coding on Mac?

15–16px minimum in your editor, with a line height of 1.5–1.6. Fonts below 14px require sustained extra effort to parse and accelerate fatigue across a long session. Use a monospace font designed for code readability: JetBrains Mono (free), Fira Code (free, with ligatures), or Berkshire Mono (premium). Also avoid running your Mac at maximum screen density - choose Default (Retina) or More Space resolution in System Settings > Displays rather than the smallest text option.

Does Night Shift help developers?

Yes - enabling Night Shift at maximum warmth from around 6pm reduces 480nm blue light that causes photoreceptor fatigue and melatonin suppression. For developers working evening sessions, this is one of the most impactful single display settings. Find it at System Settings > Displays > Night Shift. For a more precise schedule that adjusts daily to the actual sunset time at your location, Solace provides sunset-based scheduling with zero ongoing manual input.

What external monitor settings should developers use on Mac?

At least 1440p resolution for a 27-inch monitor - 1080p is too low pixel density for clean code text rendering at a typical viewing distance. Position the monitor 50–70cm away with the top of the screen at eye level. In dual-monitor setups, match colour temperature and brightness between both screens to reduce the adaptation effort as your eyes move between them. Night Shift and Solace scheduling both apply system-wide, covering external monitors connected to your Mac.

Automate your developer display setup - $4.99, yours forever

Solace triggers dark mode and warm colour temperature at sunset, every day - no manual switching mid-session. One-time purchase, zero data collection, macOS Sequoia+.

Buy Now

One-time purchase, no subscription. Learn more

All posts