how to correct the external monitor resolution
A problem that’s been bugging me since at least Mountain Lion is that sometimes when I connect my external monitor to my Macbook Pro, the display resolution is incorrect. The problem is pretty annoying as it often occurs on wake if the MBP goes to sleep even when the external monitor hasn’t been disconnected.
There are a number of solutions to this problem, and I’ve used them all. Some are less irritating than others, but in this post I’ll give you a run down of the options.
1. The old fridge magnet trick
As I often use a tiny magnet to put my MBP display to sleep while keeping the lid open, normally putting the magnet on and then taking it off again will cause the displays to reset. But this method is annoying both because I’m often connecting to external monitors away from home and because I often misplace that tiny magnet! The other problem with this method is it doesn’t always work… 😦
2. Put the external monitor to sleep with a Hot Corner
Go into System Preferences > Mission Control, and set one of the Hot Corners to ‘Put Display to Sleep’ (not ‘Start Screen Saver’). When your mac wakes up and the monitor is in the wrong resolution, move the cursor to the Hot Corner, wait a couple of seconds, and move the cursor back to the centre of the screen.
3. Activate ‘Detect Displays’
Ok, two ways to do this. The manual way is that you open System Preferences, hold down the ‘option’ key and hit the ‘Detect Displays’ button at the bottom of the window. Note that you won’t see this button unless you’re holding down the ‘option’ key. After the display resets properly, quit System Preferences. My main beef with this method is it’s totally disruptive to my workflow, so much in fact that it makes me angry every time I use it!
Fortunately, you can lower the inconvenience with the second way, which is an AppleScript that does the same thing automagically.
Update Jan 2015:
Partly in response to this problem, I’ve written an app called DisplayDroid which detects when a monitor is connected or disconnected and automatically runs a script in response. The script below is built into DisplayDroid as one of the presets that you can choose!
Find out more about DisplayDroid…
try
tell application "System Preferences" to quit
end try
delay 1
tell application "System Preferences"
activate
reveal pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell process "System Preferences"
set frontmost to true
try
key down option
delay 0.2
click button "Detect Displays" of window 1
delay 0.2
key up option
on error
key up option
end try
end tell
end tell
tell application "System Preferences" to quit
You might want to save this in your scripts menu or make it into a Dock-able app for convenience. Don’t forget you’ll need to allow the AppleScript editor permission to use Assistive Devices.
4. A free screen utility
Unhappy with a GUI scripting solution, I started researching how to change the displays in Cocoa or from the BASH command line so that I could avoid the overhead of System Preferences popping open and closed, which is an ugly solution at best. I didn’t get far in my research before I found that someone else had already beaten me to the punch, and had even offered the code up for free. Y’gotta love the heroes of the programming community! Download the free RDM.app, which lets you change the screen resolution on any of your monitors from the status bar on your desktop. Move it from your Downloads folder into your /Applications folder. I’ve even got it in my login items for maximum convenience!
Although the app is probably slightly slower than the Hot Corner solution when I’m at home, I like it because I regularly connect my mac to all sorts of other monitors and projectors and the mac doesn’t always choose the best display. The RDM.app lets you slide through the available options much more efficiently than the System Preferences panel, too. Big respect to Paul Griffin at http://www.phoenix-dev.com for this!
5. Trash old prefs
No matter how well or otherwise any of these techniques work, the question remains: why is the resolution setting being forgotten in the first place? I haven’t nailed this down as a cert yet, but ever since I did this to solve a different problem, my monitor’s been behaving itself, too.
1. Go to
Hard Disk/Library/Preferences/System Configuration
Now make sure you’re at the right place because there’s another ‘System Configuration’ folder at /Library/System Configuration, and you definitely don’t want to be messing with that one. Also, this is the Library folder at the root of your hard disk and NOT your user account library (i.e, the path is /Library, not ~/Library). Check that path. Here it is again
Hard Disk/Library/Preferences/System Configuration
2. OK, click on that folder, and copy it over to your Desktop. Now go back and delete it from /Library/Preferences (or hold down ‘option’ while you drag to do a ‘move’. I prefer the first way; it’s safer, if slower).
3. Restart and test.
Hopefully, if you’ve been venting at the ears like me over the external display problem, one or more of these options will help lower the frustration!
🙂
Related Posts:
DisplayDroid from Applehelpwriter
Featured Picture: apple_display by 3DEricDesign
Posted on January 25, 2014, in Developer, Displays, Mavericks, Mission Control, Mountain Lion, Scripts and tagged display, displays, external monitor, Mac, mode, OS X, resolution, screen utility. Bookmark the permalink. 6 Comments.
I just turn the external monitor OFF, wait 30 seconds and then turn it back on. Then go into display preferences and set the correct resolution. I have a 2560×1440 external monitor that keeps getting forced back to 1920×1080 with NO option to select 2560×1440. After I power-cycle the second monitor the 2560×1440 resolution is available again. My second simply is an ACER, my primary computer is a 27″ iMac (2013) with Yosemite. Hopefully Apple will fix this in El Capitan.
Wow, the apps you shared works just how I want it.
Thank you very much.
I see that the developer himself did not put the app for public.
Thanks again.
Thank you, this was driving me mad. I have a mid 2009 mbp and a samsung monitor. I could not get the samsung’s supported 1920 x 1080 resolution via system preferences > displays but the little RDm.app did the trick.
Those are the EDID overrides. They basically override the display information provided by the monitor to the graphics card(s), which is sometimes necessary to deal with software updates or monitors whose original EDID was incompatible.
Whacking the whole lot suggests that one of those was corrupt, and the graphics card is now running on info directly from the monitor’s EEPROM. I’d suggest you do a software update if you haven’t already. That should ensure that your Overrides are all up to date.
Sorry, I meant “initially *no* monitor attached…”.
Phil, I had some serious issues with display resolutions that were driving me bonkers when I first got my latest mac. I had initially started the device up with a monitor attached, and I think this lead to the problem.
I spoke to an Apple Senior tech and they couldn’t help, but none of this made sense, there had to be some kind of pref or plist that was causing this.
After sifting through the System and Libraries, I found a whole bunch of obfuscated folders in this directory:
System -> Library -> Displays -> Overrides
I moved everything aside from the “Contents” folder from inside “Overrides” to a holding folder on the desktop and rebooted (I had to Authenticate the move).
Display issues evaporated, and everything went back to normal behaviour.
I Couldn’t find this directory documented anywhere.
Aitan