# jakehilborn/displayplacer

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jakehilborn-displayplacer).**

4,341 stars · 154 forks · C · mit

## Links

- GitHub: https://github.com/jakehilborn/displayplacer
- awesome-repositories: https://awesome-repositories.com/repository/jakehilborn-displayplacer.md

## Description

Displayplacer is a command-line tool for managing multi-monitor display layouts on macOS. It enables users to save, apply, and automate screen configurations including resolution, rotation, arrangement, and mirroring settings entirely from the terminal without requiring a graphical interface.

The tool identifies displays using persistent hardware IDs rather than port-based identifiers, allowing layouts to be restored consistently across reconnections and reboots. It supports headless display configuration, enabling or disabling monitors, rotating internal and external displays, and designating a primary screen. Mirroring setups are handled with automatic resolution optimization for the primary display in a mirrored group.

Displayplacer encodes full multi-monitor parameters into compact string arguments for easy saving and replaying of layouts. It can list current screen configurations as command-line arguments for creating reusable profiles, and applies only valid configurations by matching requested settings against supported hardware modes. The tool also provides session-aware identifier fallback for maintaining layout stability when macOS reassigns hardware IDs.

## Tags

### User Interface & Experience

- [Persistent Layout Automators](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/persistent-layout-automators.md) — Programmatically saving and applying screen layouts with persistent hardware identifiers for consistent multi-monitor setups.
- [Layout Tools](https://awesome-repositories.com/f/user-interface-experience/multi-monitor-break-displays/layout-tools.md) — Utility for saving and applying persistent monitor arrangements across multiple displays.
- [Display Layout Managers](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers.md) — Managing the arrangement, resolution, and rotation of multiple displays on macOS through command-line automation.
- [Display Layout Appliers](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/display-layout-appliers.md) — Sets each display's resolution, arrangement, and mirroring state from a saved or constructed configuration string. ([source](https://github.com/jakehilborn/displayplacer/tree/master/test))
- [Primary Display Designators](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/display-settings/primary-display-designators.md) — Designates the screen at origin (0,0) as the primary display, equivalent to dragging the white bar in System Preferences. ([source](https://github.com/jakehilborn/displayplacer#readme))
- [Multi-Monitor Layout Configurators](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/dual-screen-layout-configurators/multi-monitor-layout-configurators.md) — Sets resolution, rotation, arrangement, and mirroring for each display using a compact string argument. ([source](https://github.com/jakehilborn/displayplacer/blob/master/README.md))
- [Screen Layout Appliers](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/screen-layout-appliers.md) — Sets resolution, rotation, position, mirroring, and enabled state for each display using a compact configuration string. ([source](https://github.com/jakehilborn/displayplacer#readme))
- [Display Enablers](https://awesome-repositories.com/f/user-interface-experience/layout-configurations/display-aware-layout-managers/display-layout-managers/display-settings/display-enablers.md) — Turns off a specific screen by setting its enabled state to false, with re-enable support via unplug/replug or command. ([source](https://github.com/jakehilborn/displayplacer#readme))

### Business & Productivity Software

- [macOS Display Layout Managers](https://awesome-repositories.com/f/business-productivity-software/desktop-workspace-organizers/macos-workspace-managers/macos-display-layout-managers.md) — Command-line tool for managing screen resolutions, refresh rates, and monitor layouts on macOS.

### Graphics & Multimedia

- [Display Configuration Managers](https://awesome-repositories.com/f/graphics-multimedia/display-configuration-managers.md) — Lists all connected displays with their current resolution, position, and mirroring settings for inspection. ([source](https://github.com/jakehilborn/displayplacer/tree/master/test))
- [Internal Display Rotators](https://awesome-repositories.com/f/graphics-multimedia/display-rotation-optimizers/internal-display-rotators.md) — Changes the rotation of a built-in MacBook screen by specifying a degree value (0, 90, 180, or 270). ([source](https://github.com/jakehilborn/displayplacer#readme))
- [Degree-Based Rotators](https://awesome-repositories.com/f/graphics-multimedia/display-rotation-optimizers/degree-based-rotators.md) — Changing the rotation of internal and external displays on macOS by specifying degree values.
- [macOS Screen Mirroring Configurators](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/screen-mirroring/macos-screen-mirroring-configurators.md) — Configuring multiple displays to mirror content with automatic resolution optimization for the primary screen.
- [Multi-Monitor Mirroring Configurators](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/screen-mirroring/multi-monitor-mirroring-configurators.md) — Groups multiple screens into a mirrored set, designating the first screen as the primary for resolution optimization. ([source](https://github.com/jakehilborn/displayplacer#readme))

### Operating Systems & Systems Programming

- [Display Identifiers](https://awesome-repositories.com/f/operating-systems-systems-programming/display-connection-monitors/display-identifiers.md) — Uses stable or session-specific screen identifiers to handle layout changes when macOS reassigns IDs. ([source](https://github.com/jakehilborn/displayplacer/blob/master/README.md))
- [Screen Configuration Listers](https://awesome-repositories.com/f/operating-systems-systems-programming/display-connection-monitors/display-identifiers/screen-configuration-listers.md) — Displays current screen identifiers, resolutions, and arrangement details for all connected monitors. ([source](https://github.com/jakehilborn/displayplacer#readme))
- [Hardware Mode Filtering](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-mode-filtering.md) — Matches requested display settings against the set of supported hardware modes to apply only valid configurations.
- [CLI Configurators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-configuration/display-resolution-settings/cli-configurators.md) — Program for setting display scaling, rotation, and mirroring settings from the terminal.

### Software Engineering & Architecture

- [Display Fallback Identifiers](https://awesome-repositories.com/f/software-engineering-architecture/network-identifiers/session-identifiers/display-fallback-identifiers.md) — Uses contextual session identifiers when persistent hardware IDs are reassigned by macOS, maintaining layout stability across reboots.
- [Hardware Configuration Persistence](https://awesome-repositories.com/f/software-engineering-architecture/state-persistence/hardware-configuration-persistence.md) — Links display configurations to stable hardware IDs instead of port-based identifiers for consistent layout restoration across reconnections.

### System Administration & Monitoring

- [Command-Line Display Configurators](https://awesome-repositories.com/f/system-administration-monitoring/headless-display-simulation/command-line-display-configurators.md) — Manages display layouts entirely through command-line arguments without requiring a graphical user interface or window server interaction.
- [Display Mirroring Optimizers](https://awesome-repositories.com/f/system-administration-monitoring/device-grouping/mirrored-device-groups/display-mirroring-optimizers.md) — Designates the first display in a mirrored set as primary and optimizes resolution across grouped screens for consistent output.
- [Display Configuration Inspectors](https://awesome-repositories.com/f/system-administration-monitoring/display-configuration-inspectors.md) — Prints the current display layout, resolutions, and rotation settings as command-line arguments for creating reusable profiles. ([source](https://github.com/jakehilborn/displayplacer/blob/master/README.md))
- [Headless Display Configurators](https://awesome-repositories.com/f/system-administration-monitoring/headless-display-simulation/headless-display-configurators.md) — Enabling or disabling monitors and configuring display settings without a graphical user interface on macOS.
