Navigate / search

Force RGB mode in Mac OS X to fix the picture quality of an external monitor

I recently bought a MacBook Pro (with ‘Retina’ screen), but when I hooked it up to my Dell U2410 monitor via HDMI cable I was shocked by the poor picture quality. The contrast was all wrong and text was misshapen. No amount of calibration in the monitor or software would fix it.

Short answer: OS X thinks my monitor is a TV, and is using the YCbCr colour space rather than RGB. I had to override an EDID setting to force the RGB colour space, and it is now working correctly.

Long answer: I haven’t owned a Mac for a while and had forgotten how difficult much of the “Apple community” can be when it comes to anything that can’t be adjusted in System Preferences. Googling for problems with external monitors on MacBooks found dozens of threads on official and unofficial Apple forums, all full of people with the same problem. The most common response was to blame the monitor, despite assurances from the stricken users that the monitor worked beautifully in Linux and Windows, even on the same machine under Boot Camp.

“You just haven’t calibrated it!”, “You are just too used to Retina now!”, “You just need to buy a Thunderbolt display!” Apple people also like to solve problems by throwing more money at it. (I realise that owning a Mac makes me an Apple person, too. Hypocritical self-loather?)

My lucky break was reading that the current colour space was “YCbCr” when I was browsing the monitor’s settings menu. I was sure that it was using RGB when hooked up to my PC, so I started searching instead for forcing RGB mode in OS X. It didn’t appear to be available out-of-the-box, but I have had some experience in overriding EDID settings for similar purposes so I searched instead for that.

I found this thread on the forums. Mr Schwarz, thanks very much. Your thread and script was incredibly helpful and informative. It was written to fix problems connecting an external monitor via DisplayPort, but it fixed my HDMI issue just the same. I’ve summarised the required steps below.

My last word is to wonder what Apple is playing at. It seems that this problem has been reported by a lot of people for a long time, and I expect it would require a fairly simple software update. Do they just not care about those using third-party components, or are they actively attempting to force people on to Thunderbolt displays?

How to force RGB in Mac OS X

These steps have been updated for Mac OS version 10.11, “El Capitan”. See below for differences for previous versions of the system.

  1. Download the patch-edid.rb script from the forums thread above, or download Andrew Daugherity’s improved patch-edid.rb script from his github page. Put the script in your home directory.
  2. Disable “rootless” mode, you can follow these instructions: How to modify System Integrity Protection in El Capitan.
  3. Reboot.
  4. Connect only the external monitor(s) in question, if you can (I closed my MacBook lid, for example). The script will make override files for any connected monitor.
  5. Type “ruby patch-edid.rb” in Terminal.
  6. A new folder will be created in your home directory. Move it into the “/System/Library/Displays/Contents/Resources/Overrides” folder. If Finder tells you that you are overwriting an existing folder, consider backing it up first.
  7. Restart your computer. The picture quality should be fixed from this point.
  8. Re-enable “rootless” mode, the instructions are available on the same guide: How to modify System Integrity Protection in El Capitan.
  9. Reboot. Enjoy your monitor.

To undo the changes, either delete the folder you had copied to the Overrides folder (if it didn’t already exist) or replace it with the folder you had backed up. You will need to re-enable rootless mode to do this.

Earlier versions of Mac OS X

The process is a little more straightforward. There are two differences to the steps above:

  1. You do not need to disable/re-enable rootless mode and perform the subsequent reboots.
  2. The overrides folder location is “/System/Library/Displays/Overrides”.


I no longer own a Macbook Pro, but if you’re having trouble with any of these steps, please have a look through the comments below (and note that there are multiple pages). Many questions have been answered with helpful tips from others.

Update, 3 Oct 2015: I have amended this post to target El Capitan. I have taken the steps from bigmcguire’s process, posted in the comments. Although some are still having issues, it appears to be working for people. Thanks!

Update, 29 May 2015: Mac OS 10.11 El Capitan does things a little differently. You must first disable the new ‘rootless’ mode and then use a different overrides folder: /System/Library/Displays/Contents/Resources/Overrides. Rootless can then be re-enabled if desired, as confirmed by nos1609 in the comments below. El Capitan is still in beta, I’ll update this post if the issue is still apparent afterwards.

Update, 26 May 2014: If you have had trouble with limited resolutions being available after the fix, check out Ibrahim’s comments here.

Update, 28 Nov 2013: If the process appears to work but doesn’t seem to make a difference, consider Tom’s comments below. Depending on your monitor an extra tweak may be required.

Update, 13 Nov 2013: Andrew comments below that he has modified the script to add some useful new features, and provides a link to his GitHub for those wishing to use it instead.

Update, 27 Oct 2013: If you’ve applied this fix before, the OS X Mavericks update will overwrite it. I’ve successfully re-applied the fix by following exactly the same steps, and other commenters below have done so, too.



Thank you, so if I’m doing the whole thing with El Capitan, then I get a picture as soon as I turn off my monitor. Does somebody has any idea?


it’s not working for me.
when I type “ruby patch-edid.rb”
patch-edid.rb:9:in `scan’: invalid byte sequence in UTF-8 (ArgumentError)
from patch-edid.rb:9:in `’

Andrew B

Thank you very much for posting these instructions – these worked perfectly with MacOS X 10.11 and an Acer K272HUL monitor.


I came across this solution because I found this:
This is excatly my problem.

Now I see, that the problem described here is different, because it is there right after you connect the display – not after 20 minutes.

But somehow it must be connected, because after 20 minutes, the colors switch…


Unfortunately it does not work for me:

patch-edid.rb:9:in `scan’: invalid byte sequence in UTF-8 (ArgumentError)
from patch-edid.rb:9:in `’

I got an 5K Retina iMac.
Please help! The colors on my Philips TV make me crazy!!


I am unsure whether the patch would work on an actual TV. After all it is meant to force OS X to recognize a monitor misidentified as a TV. If you do have color problems on your TV, calibration might be the way to go.

Justin Lee

will this affect ability to use a custom color profile created by a screen color calibration tool such as x-rite colormunki or Spyder?

Thank you


Nope – color calibration works as expected. Of course you have to calibrate after applying the patch/override.


Thanks bigmcguire. Your steps saved my 2nd monitor and my eyes, after upgrading to El Capitan. I was furious over not being able to paste to the ‘Overrides’ folder and had even spent hours with Apple Support to fix it( they were useless by the way. All they suggested was to downgrade back to Mavericks!). Thank you again!


Worked perfectly on El Cap (I used the modified ruby script from Github that uses the actual display name). After rebooting, El Capitan even recognized the custom color profiles I generated in Yosemite.


Can you please point to the modifies ruby script URL from Github?


I’ve made this explicit in the first step now, thanks.


This is a very helpful article. I always use this whenever my mac is updated. Thank you so much!!

Tom NJ

I couldn’t hate Apple any more for doing this every time they do an OS upgrade.

I’ve been following all the instructions and for me I can’t generated the override folder while in El Capitan. So I’m going to restore to Yosemite and see if I can copy to folder to an external drive. Restore to El Capitan and try again.

Like tomeek I too have a Dell U2410 and shouldn’t have to suffer like this every time Apple does and update!


Hey, I’ve tried this, it did make “Television” disappear in System information, but reported pixel depth is “still” “CGSThirtyBitColor”, not the usual “32-bit Color”, any ideas?


I restarted normally after step 3 and I stil have grainy text. If I worked for a few minutes on my computer with rootless mode, the computer would reboot automatically telling me it has problems in it.


The csrutil disable command didn’t work for me! What do I do?


Worked perfectly until El Capitan. Now i got acid colors :(
Switched back to apple monitor profile with ugly fonts ((((

Paul McGuire

It still works in El Capitan. After installing El Capitan on my MacBook Air I was distraught to see fonts all fuzzy again. So I ran the script again and tried to copy the override folder but it wouldn’t let me copy it. Read the end part of the article he has a way to make it work in El Capitan. You have to disable rootless mode then copy the script again. I turned rootless mode back on and fonts are sharp again. :). Just boot into recovery and run that command in terminal to disable rootless. It works.


The exact steps I took (to simplify):
1. Re run the script to generate the folder to copy to ovverrides.
2. You’ll notice override in a new location: /System/Library/Displays/Contents/Resources/Overrides and you can’t paste anything to it.
3. Boot into recovery (pressing Command+R repeatedly as Mac reboots).
4. Go to Utilities –> Terminal and type: csrutil disable. — Reboot.
5. Now copy the new file created to /System/Library/Displays/Contents/Resources/Overrides overriding the one already there.
6. (See 7). Reboot. Text is sharp again!
7. Boot into recovery (press Command+R repeatedly as Mac reboots).
8. Go to Utilities –> Terminal and type: csrutil enable. — Reboot.

You now have Rootless and sharp text!


I’ve done exactly like you. But with patched version (DisplayVendorID-469/DisplayProductID-23e1) I’ve got acid colors on my monitor :(
So i moved back original file to /System/Library/Displays/Contents/Resources/Overrides and now broke my eyes :(


Wow that’s terrible. You generated a new DisplayProduct since El Capitan with the “ruby patch-edid.rb” in Terminal” right? Hope you find a fix :( That would drive me nuts.


Yep. I generated new DisplayProduct under El Capitan.
Here is how it looks with patched DisplayProduct –

Here is my patching log:

Pro:csync bash$ ruby patch-edid.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb:213: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
found display: vendorid 1129, productid 9185, EDID:
Setting color support to RGB 4:4:4 only
Number of extension blocks: 1
removing extension block

Recalculated checksum: 0x51
new EDID:

And this is content of DisplayProduct file:

Pro:csync bash$ cat DisplayVendorID-469/DisplayProductID-23e1

Display with forced RGB mode (EDID override)



It worked perfectly for me on El Capitan. I had to do the same on Yosemite and Mavericks before with my DELL U2410 and the display is even sharper on El Capitan with the same override. Kudos! Thanks a lot!


Tomek, can you post the steps you took, but step by step. I tried the same thing I did on Yosemite and it did not work in El Capitan.
1. I created the file
2. I restarted with command + R and set rootless mode and restarted
3. I copied the file to the new location and restarted with command + R
4. I enabled rootless mode and restarted
5. Same as before, grainy text.


The only thing I did different from you was – after step 3 – I restarted NORMALLY without immediately enabling Rootless mode. Upon normal reboot, the text was sharp on my screen. I then proceeded to enable rootless mode (with another reboot) and the text stayed sharp.

Can you try that? It’s all I can think of at the moment.


I’ve used this to update the post, thanks very much!


Thanks very much! I was successful with the steps you shared.

Leave a Reply