Switch (Toggle) Screen Resolution

Kirk McElhearn’s Macworld article got me thinking that switching screen resolutions would be nice with a keyboard shortcut. I wouldn’t use one resolution all the time. Probably default since text reading is easier, but I can imagine using a higher resolution to look at multiple apps at once. Some posted recently about this and they went with another app. I resist adding too many utility apps.

I just reread the article and he mentions an inexpensive app to do the switching, maybe that is the way to go. Resolutionator. It works, but can’t select preferred resolutions. I want to toggle between two. Or have a second key press to select, for example, ^control-option-R to bring up selection, and 1 to 5 to select the resolution (from the five choices).

I don’t see anything in the docs or forum to suggest this is readily available. Presumably could be crafted with screen clicks, but is not usually very robust.


Checkout SwitchResX.

I have been using it for well over a year, and love it.
It handles multiple screens, and you can create a many display sets as you like. They can be triggers by the start/quit of an app and by hotkeys.
I’ve never had an issue with it.

KBM: Have you checked the AppleScript dictionary in Apple’s Finder for available commands to change screen resolution? I would think you could get this going with an AppleScript that is triggered using Keyboard Maestro which you can then assign to a keystroke.

Thank you for the comments. SwitchRexX is about 15 euros which seems steep for a one trick pony. But if I find that I’m switching resolutions a lot, I’ll give it a try. And AS makes me crazy, the syntax is just too odd.

I did find that Resolutinator responds to the arrow keys so switching is not too cumbersome.

Thanks again.

At $15 US, seems like a great value to me. Yes it only does one thing, but it does it very well, and does not interfere unexpectedly with your OS. I guess it may depend on how often you need it. I use it daily to automatically change the res on one of my monitors when I open my trading software. It then automatically restores the res when I quit.

Just confirming there hasn’t been a feature added to KM to change resolutions without use of an external app.

What I really want to do is to be able to set the Display pref to the setting that is normally selected by the “Default for Display” radio button with a key press or macro, so the question is a little different than selecting a particular resolution.

(Didn’t know if I should start a new topic.)

Just in case anyone else looks this up, I found this app on the Mac App Store. The $1.99 pro version allows you to set the resolution with AppleScript. Works like a champ!



Brilliant! Thank you so much for this find! The nice thing about M1 MacBook Air is that the resolution change is instant! No fade to dark.. so it works so nicely here!

1 Like

So, I upgraded Display Menu to Pro and I could not get the command line to work. I am using a M1 MacBook Air running on Monterey. I tried the Apple Script in both Automator and KM and both gave the same error message:

Is there anyone here having success with Monterey or, am I the idiot for not being able to run that script?

Hey @cherry,

Drop the application file on the Script Editor.app and see if it has an AppleScript dictionary.

BTW – why are you working in Automator? One should never develop scripts in that critter in my opinion.

Apple's Script Editor.app is a better option, even though it's been stagnant for years.

Better yet – download Script Debugger and use it. (The commercial version reverts to the freeware “lite” version after a 20 day demo period.)

Watch the vids on the download page to see why Script Debugger is the best bet even for folks who don't write much AppleScript.


Thanks Chris. I don't know anything about Scrip Editor.app, that's why I tried Automator instead. Ok, I will drop the file into Scrip Editor and take a look. Thank you.

I emailed the developer and no response. I think the app has been abandoned. What a shame.

The last update would seem to have been 3 years ago.

Generally that makes for a dead product.

Too bad.

There are other options that are scriptable.

SwitchResX has been around forever and is a very mature product.


So, once I read the documentation, I learned that I don't have to specify the display name and it will default to the main display. So, thank you so much @ccstone

And that, fixed the script! Here is my working script:

tell application "Display Menu"
set theResolution to current resolution on display "Colour LCD"
if (theResolution = "1680 x 1050 60.0 Hz Retina") then
select resolution "1280x800" on display "Colour LCD"
select resolution "1680x1050" on display "Colour LCD"
end if
end tell


Jumping in a few months later - I've had "Display Menu" for years and had no idea it could be scriptable. Works great!

1 Like