Configuration profile for managing multi monitor display

I am not sure how exactly to phrase this, but wondering if there is a way to manage the display preference and monitor arrangement with a unique profile on macOS?

The problem is, I have a home and office multi monitor setup but the specific monitors are arranged different in each environment. So when I move the laptop between work and home the display arrangement is all confused and I have to manually change in display preferences.

+------------+ +----+ |  +----+ +------------+
|            | |    | |  |    | | 4K Dell    |
| TB Display | | 4K | |  | TB | |            |
+------------+ |DELL| |  |    | +------------+
   +------+    |    | |  |    |  +--------+
   | MBP  |    +----+ |  +----+  | MBP    |
   +------+           |          +--------+
   +------+           |          +--------+
                      |
    Home Setup        |   Work Setup
                      |
                      +

Because of specific physical constraints I am unable to change the physical layout of the monitors. macOS seems to automatically detect by monitor type.

I am wondering if there is a software configuration and profile I could create to manage this? For example, tell the system when at home the TB Display is on the left and horizontally oriented, but at work it is on the right and vertically oriented, etc..

Is there an app or AppleScript technique that manages this?


I wrote a tool called displayplacer that does exactly this. It will let you set up profiles for changing the resolution, rotation, and positioning of your monitors.

For example, he's my 4 monitor setup profile: displayplacer "id:A46D2F5E-487B-CC69-C588-ECFD519016E5 res:3840x2160 hz:60 color_depth:8 scaling:off origin:(0,0) degree:0" "id:F466F621-B5FA-04A0-0800-CFA6C258DECD res:1440x900 color_depth:4 scaling:on origin:(-1440,1437) degree:0" "id:4C405A05-8798-553B-3550-F93E7A7722BB res:1440x2560 color_depth:8 scaling:off origin:(3840,-363) degree:270" "id:18173D22-3EC6-E735-EEB4-B003BF681F30 res:1920x1200 color_depth:8 scaling:off origin:(960,-1200) degree:0"

It's also available via Homebrew brew tap jakehilborn/jakehilborn && brew install displayplacer


The best I've been able to find that does this is SwitchResX, To get what you're asking for, I believe you would set up a display set for your home and work environment. SwitchResX also advertises that it can be controlled via AppleScript.