Apple - How to set screen resolution with a keyboard shortcut on Retina MBP?
QuickRes (4 USD)
Based on your description, QuickRes appears to perfectly accomplish what you're trying to do. You can set multiple (up to 8) resolutions in its preferences and assign keyboard shortcuts to them. To access preferences, launch QuickRes and Ctrl-click (right-click) the icon that will appear in the menu bar. Note that Mac will give you an error and claim that it is from an "unidentified developer"; simply Ctrl-click the app's icon in Finder and click open.
Screenshots are below:
QuickRes options. Click Preferences. Also, after you set resolutions, you may simply click this icon normally to toggle between resolutions.
Resolutions pane of QuickRes preferences. You may add more preferred resolutions in "Advanced." Also, because this was taken on an iMac, you will have different resolution options for your MacBook Pro Retina.
Shortcuts pane of QuickRes preferences. Right now, my shortcut is Command-Option-R. You can change this, of course.
In the Advanced pane, you can set how many resolutions you wish to toggle. The shortcut only works when you have QuickRes open (it's a lightweight app, so don't worry about resources), so I would recommend selecting "Open QuickRes on Login" to get it out of your way.
I use an AppleScript that toggles through 3 of the 'scale' options depending on the current option...
local index1, index2, index3
set index1 to 3 -- 1440 x 900 (Best for Retina)
set index2 to 4 -- 1680 x 1050
set index3 to 5 -- 1920 x 1200 (More Space)
-- Launch "System Preferences", open the "Displays" options and change to the "Display" tab
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.displays"
reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
end tell
local indexToUse
-- Now lets make the necessary changes
tell application "System Events"
tell window "Color LCD" of application process "System Preferences" of application "System Events"
tell tab group 1
-- Click the "Scaled" radio button
click radio button "Scaled"
tell radio group 1 of group 1
-- Depending on what scale option/index is current selected, set the appropriate new option/index to use
if (value of radio button index1) is true then
set indexToUse to index2
else if (value of radio button index2) is true then
set indexToUse to index3
else
set indexToUse to index1
end if
-- Click the radio button for the new scale option/index
click radio button indexToUse
end tell
end tell
-- If option/index 1 is selected a warning prompt is displayed, click the OK button to dismiss the prompt
if indexToUse = 1 then
click button "OK" of sheet 1
end if
end tell
end tell
-- Quit "System Preferences"
quit application "System Preferences"
I don't have a MacBook Pro with a Retina display, so you probably have to change the numbers of the rows. I don't know if this would work with multiple displays.
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events" to tell process "System Preferences"
tell tab group 1 of window 1
click radio button "scaled"
tell table 1 of scroll area 1
if selected of row 1 then
set selected of row 2 to true
else
set selected of row 1 to true
end if
end tell
end tell
end tell
quit application "System Preferences"
You can give the script a shortcut with Alfred or FastScripts or by creating an Automator service.