A small macOS menu bar app to quickly switch between predefined multi‑monitor layouts. It saves the current display arrangement and lets you re‑apply it from the menu bar.
DisplayLayouts uses the bundled displayplacer tool under the hood to apply positions, resolutions, refresh rates, rotation, and mirroring.
- Save current arrangement as a named layout
- Apply saved layouts from the menu bar
- Manage layouts (rename, delete, reorder)
- Shows a checkmark for the currently active layout
- macOS 12.0 (Monterey) or newer
- Apple Silicon or Intel Mac
Latest: DisplayLayouts 1.0 (tag
v1.0, commit8218a4a)
brew tap luuccaaaa/tap
brew install --cask displaylayouts- Grab
DisplayLayouts-1.0.dmgfrom the GitHub Releases page. - (Optional) Verify the download:
Expected SHA256:
shasum -a 256 DisplayLayouts-1.0.dmg
e0942d6bfa58d6fe0fe4ce4a0c5f2f16001d00c209bbe9f6122373b348899f13. - Open the DMG and drag
DisplayLayouts.apptoApplications.
Development builds require Xcode 15 or newer and a bundled displayplacer binary.
- Open
DisplayLayouts/DisplayLayouts.xcodeprojin Xcode. - Set your Team under Target → Signing & Capabilities (Hardened Runtime on; Sandbox off).
- Ensure
displayplaceris embedded via the Copy Files phase:- Target → Build Phases → “Copy Files” (Destination:
Wrapper, Subpath:Contents/Resources/Tools) - Include the
displayplacerbinary with “Code Sign on Copy” checked. - If missing, place a binary at
DisplayLayouts/displayplacer/bin/displayplacerand add it to the Copy Files phase.
- Target → Build Phases → “Copy Files” (Destination:
- Build and run.
At runtime, the app looks for the tool at DisplayLayouts.app/Contents/Resources/Tools/displayplacer.
- This app is not intended for Mac App Store distribution (uses private APIs via
displayplacer). - For outside‑store distribution, sign and notarize with your Developer ID, then ship a DMG/ZIP.
MIT — see LICENSE.