A macOS app that disables selected displays via CoreGraphics private APIs to free GPU resources. Useful for GPU-intensive workflows (video editing, 3D rendering) where you want to dedicate all GPU power to a single display.
I discovered that when I was running Resolve on three screens with multiple timelines, it felt pretty rough on an M1 Max with 64 GB of RAM. Disabling the extra displays, from three down to one, made Resolve run in real time with no beachballing.
Requires Apple Silicon (arm64) and macOS 12+.
- Enumerates all connected displays using CoreGraphics APIs
- Shows a visual arrangement view with checkboxes
- Unchecked displays are disabled (freed from GPU)
- Re-run the app to restore disabled displays
- Persists state so displays can be restored even after a reboot
Download the signed .app from Releases and drag to /Applications.
git clone https://github.com/Greenysmac/display-isolator.git
cd display-isolator
./build.shThe self-contained app will be at dist/Display Isolator.app.
To install:
cp -R "dist/Display Isolator.app" /Applications/With a Developer ID (no Gatekeeper warnings):
./build.sh --signWithout a Developer ID (open-source contributors):
The default ./build.sh uses ad-hoc signing. On first launch, macOS will show "unidentified developer". To open it:
- Right-click the app → Open → click Open in the dialog
- Or: System Settings → Privacy & Security → scroll down → click Open Anyway
This only needs to be done once — macOS remembers your choice.
Uses direct CoreGraphics API calls (no external dependencies):
CGGetActiveDisplayList— enumerate displaysCGDisplayBounds/CGDisplayPixelsWide/CGDisplayPixelsHigh— geometryCoreDisplay_DisplayCreateInfoDictionary— display namesCGSConfigureDisplayEnabled(private API) — enable/disable displays- Configuration transactions (
CGBeginDisplayConfiguration/CGCompleteDisplayConfiguration)
State is persisted at ~/.display-isolator/state.json so disabled displays can be restored on next launch.
python3 -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
.venv/bin/python -m src.main # Run directly
.venv/bin/python -m pytest tests/ -v # Run testsSee CONTRIBUTING.md for more details.
MIT — see LICENSE for details.