16

I've found myself switching between the 1440x900 and 1920x1200 "effective resolution" setting depending on what I'm doing (need more space on screen, etc).

  1. Is there a way to toggle between these two modes with a keyboard shortcut?
  2. Can I invoke one mode with a keyboard shortcut?
  3. Alternatively, can this be done via an AppleScript (and therefore bound to a keyboard shortcut)?
1
  • I would say that this should be able to be done using AppleScript, but I have no clue how. Commented Aug 2, 2012 at 13:54

7 Answers 7

7
+400

QuickRes ($$$)

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:

enter image description here

QuickRes options. Click Preferences. Also, after you set resolutions, you may simply click this icon normally to toggle between resolutions.

enter image description here

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.

enter image description here

Shortcuts pane of QuickRes preferences. Right now, my shortcut is Command-Option-R. You can change this, of course.

enter image description here

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.

0
6

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"
3

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.

1
  • +1 The best solution is always one that does not require third-party software! I always forget about AppleScript :)
    – Yes Barry
    Commented Nov 16, 2012 at 2:04
0

Alright, so SwitchResX 4 seems to be able to do this, in a few easy steps.

  1. Install SwitchResX 4 (Duh).
  2. Launch The SwitchResX 4 Preference Pane, which should look like something below: enter image description here
  3. From there, go to Display Sets, and add a new set, which we'll call Retina - Full Size, and map it to a hotkey combination (in this case, I chose opt + F1), and select the full size resolution (1920 x 1200). enter image description here
  4. Create a second set, which we'll call Retina - Better Looking, and map it to the proper resolution & keys (I chose 1600 x 1000 & opt + F2, respectively). enter image description here
  5. ???
  6. Profit! You have now set up SwitchResX to be able to resolution switch. (Note: This program is shareware, and I am not associated with it in any way. I came across it while doing a simple google search).
1
  • Unfortunately, SwitchResX doesn't seem to work—it doesn't save my display sets and the keyboard shortcuts don't do anything.
    – FeifanZ
    Commented Aug 2, 2012 at 15:28
0

Quicksilver can do it also if you enable the Displays plugin. I use it all the time. You can assign triggers to specific resolutions/actions as well.
enter image description here

Also see http://mac.appstorm.net/roundups/utilities-roundups/10-essential-quicksilver-plugins/ for a quick description. And here is the description from the help:

Displays Plugin
The displays plugin allows Quicksilver to index the displays currently attached to your Mac, in order to set the Desktop picture and their resolution, colour depth and refresh rate.

Also see Macbook Pro Retina running at native resolution

0

ResolutionTab

Available from the App Store for $1.99. It's simple and looks to be well done. Allows you to assign a global shortcut.

0

displayplacer (free)

To set multi-display resolutions, rotations, mirroring, and positioning via terminal use displayplacer.

Execute displayplacer list to view the possible resolutions for your screen. You'll want to use the ones marked as scaling:on

Then, execute a command similar to this to set the config displayplacer "id:A46D2F5E-487B-CC69-C588-ECFD519016E5 res:1920x1080 scaling:on origin:(0,0) degree:0"

Also available via Homebrew: brew tap jakehilborn/jakehilborn && brew install displayplacer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .