How to Automate Changing the Display Arrangement

I use a sceond display with my iMacand I have set it up in the Display prefeences under the Arrangement tab like this:

Screen Shot 2022-08-08 at 6.42.01 pm

Since I upgraded to Catalina this arrangement is not retained over machine restart. After starting up the machine the arrangement looks always like this:

Screen Shot 2022-08-08 at 6.41.17 pm

Changing the arrangement by hand after every startup is cumbersome.

Any idea how to automate this with Keyboard Maestro?

Have you tried an NVRAM reset?

1 Like

No, I haven't, but I look into it. Fantastic idea!

Would be great to solve it without KM automation...

Well, now I have reset the NVRAM - and still the secondary display appears after restart always at the top.

So I guess I need to go the automation path... Anyway to script the Display preference Pane?

Not that I know of. Perhaps someone else has been down this road.

Yesterday I had a similar question about the Accessibility pane so I just googled it and found what I was looking for.

Try Googling “applescript display preferences”… you might find something you can use.

1 Like

There's also this, which might be worthy of investigation as a background utility.


This project looks SUPER-promising! Thanks!

Just installed diaplayplacer: It works brilliantly!

Thanks again for the pointer.


Hey @noisneil,

Thanks for sharing displayplacer.

I barely know about the terminal related activities.

After struggled 3 hours figure out how to install and use homebrew/displayplacer, I finally got the displayplacer id

displayplacer "id:D5C1BFAE-CA1D-6490-3C92-70FD722C399A+1B92BA28-400C-D615-5AED-4950FF2471A2 res:1920x1200 hz:59 color_depth:8 scaling:off origin:(0,0) degree:0 "

As I run this directly into the Terminal it works as I intended, but when run Execute Shell Script action in KM, it doesn't work.

The error message says it has permission problem so I search in this forum and found
another topic about the displayplacer.

Remote Control trigger — Updated with solution

Referenced the macro above, I tried the action like below

Now the error message doesn't show up but nothing happens.

Could you give me an advise on this?

Thanks as always.

I'd love to help but I've never used Display Placer and I'm a bit of a newb when it comes to bash scripts. I'm sure someone else will be able to help.

1 Like

Okay got it. But thanks for the reply!
It seems it occurred by difference between Intel & M1 after tested on Intel Mac

See the other thread you posted this question in...

1 Like

I have a Intel Mac and here it works perfectly: Just output the desrired configuration and then use that output when you want to restore the configuration.