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 EmbDev.net 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. You may have to create the Resources and Overrides folders. 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”.

Updates

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, 20 Nov 2016: In the comments Marcus has proposed a faster method that doesn’t require SIP to be disabled. Others have had success with it so give it a go if you’re uncomfortable with disabling SIP.

Update, 8 Feb 2016: A comment from nos1609 below, warns about a bootloop that can occur when running other patches (like the pixel-clock patch) simultaneously, and how to get around it.

Update, 23 Nov 2015: According to Peter’s post, you don’t need to disable SIP if you use recovery mode. If others have similar success with this method I’ll update the process.

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.

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

  1. Thank you! Was very sad I couldn’t get nice quality on a LG 29uc88-b. This helped get it sharper than any of the settings. It’s sad this is still happening in 2017.

  2. I have a monitor (LG flatron W2353S 24 inches), a Macbook Pro (Late 2011) Model A1278, and a VGA displayport adapter.

    The issue is that when I connect my MacBook to my monitor it detects the monitor as a 47″ TV.

    The cable works and I can use my 1920×1080 native resolution, but it displays wrong. There’s a black large line on the left (like 2 centimeters) and on the right you can see that it’s missing a part of the screen.

    I got and very old VGA cable that works well, but i don’t know what’s the difference between that cabel and the other ones the i’ve got, I’ve checked them and got the same amount of pins, the same voltaje and everyt data in the cable is almost the same (except one number that i guess is the serial number)

    Please, if anybody got an idea, i will be glad.

    Thanks.

  3. I did this on my LG 38UC99-W with no luck. The display still shows up as ‘TV’ under system report. Because my monitor appears as ‘TV’ Nightshift doesn’t work
    Is there any way I can make the monitor appear as a display?

  4. Macbook 13′ Retina Late 2013 with MacOS Sierra 10.12.5
    This solution is not helping me with LG 24MP88HV-S. If anyone can please help here!
    FYI i am not able to see Preferences -> Display -> Color profile(LG)

  5. Doesn’t seem to work for me. Sierra 10.12.4 with a Dell U2413. Copied the patched EDID file to the folder and overwrote the existing file. Rebooted but the monitor still defaults to YPbPr mode. System Preferences -> Display shows the “forced RGB mode” in the display name. Forcibly setting the monitor to RGB results in a purple screen, rebooting the system or restarting the monitor turns it back to YPbPr.

  6. Help! This looked like a great fix – the EDID process worked but still reports “Television – Yes” in the System Report. MBP 2015, BenQ 3200U 4K monitor. Tried both DisplayPort and HDMI. Same result – the Mac still thinks the monitor is a TV. Any ideas???

  7. You’re amazing! It worked perfectly for my Dell U2413. It had been randomly crashing using a displayport -> displayport connection, so I switched to HDMI, found this and so far at least things seem to be working…

  8. Would it possible to use a EDID programmer to help with this issue? We have this issue with a projector in one of our conference rooms. The MacBooks or the Projector does not correlate the EDID RGB Information and even if we have Auto/Forced RGB or YCbCr it think its the opposite signals sent, which makes the picture totally wrecked.

  9. THX THIS WORK!! My mac mini 2016 with Sierra can’t display image to fullscreen on LG 29UM68 . He say that resolution is 2560×1080, but draw black border by both side. I’m doing step by step from instruction by Marcus and that WORKED! Thank you. P.S. this problem views on MAC, other OS LG 29um68 work right from unboxing ))

  10. Tried on macbook pro retina with macOS Sierra 10.12.4: copied generated override file to /System/Library/Displays/Contents/Resources/Overrides, didn’t notice any changes.

    Fonts are still blurry. Color scheme also not the best, I can see where shade under window ends (which is not noticeable on retina) Display Philips 234E5, connected via HDMI.

      • I’ve got the same problem. MacBook Pro Retina Mid-2012, MacOS Sierra 10.12.4. Dell 30″ U3014 with mini-DisplayPort worked for over a year. Then stopped working entirely–monitor says nothing connected, and Mac shows only its own display. I suspect it was MacOS upgrades. So I switched to the full size dual-link DVI connection on monitor, with dual-link adapter from that cable to mini-DP on Mac. That works but only up to 1920 x 1440. I followed the procedures in this post plus the comments (thank you everybody!), and like EOL I now see “forced RGB (EDID override)” in this display’s preference window. But the max resolution offered still is only 1920 x 1440 even if I hold down the Option key while clicking the Scaled radio button.

        Dell supports only Windows, which I guess I can understand given Apple’s disinterest in providing any support whatsoever for anybody’s monitors but its own. Now that Apple no longer sells its own monitors, you’d think Apple would step up support for other monitors, but apparently Apple is more interested in selling iPhones. Pity.

        • I forgot to mention that I can use my Dell U3014 at highest resolution with the HDMI connection. Unfortunately, that’s a bit fuzzy. I’ll try creating an EDID override for that connection, I suppose.

  11. I tried Marcus’ method, but needed a few extra steps because my hard drive is encrypted. In terminal, I had to run
    > diskutil coreStorage list

    To get the list of drives. Then picking the final encrypted one in the list, I found the UUID and ran

    > diskutil coreStorage unlockVolume

    That told me it was mounted as /dev/disk17. Finally, I had to run

    > mount -uw /dev/disk17

    to make the volume writable.

    • At first I thought it didnt work a few times. The final straw that fixed everything was closing my monitor lid and making it overwrite.

      That was what did the trick!

      Thank you!

  12. I’ve done all steps like in this tutorial but my LG 24MP88HV-S is still recognized by my Mac as a TV, please help me. What can I do get this work, and force RGB mode

  13. Just ran it with success on a Mid 2013 MBA 11″ running OS X Sierra
    note that I first made sure that Ruby was up and running (just type ruby -v in the terminal and check you get an answer) and that I used the shorter version proposed by marcus : http://www.mathewinkson.com/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor/comment-page-13#comment-15886

    thanks to all for your advices, please keep this post alive for a long time (even though you’ve turned to the dark windows side) cause we use it at each OS X major update…

    • Good to get confirmation, thanks. Post won’t be going anywhere, I’m glad it’s helping some people.

      Ha, dark side :) The last time I was brand loyal was Sega vs Nintendo! Tools for the job IMO. iOS is a great phone OS, Linux is a great server OS, but everything apart from Windows frustrates me on the desktop these days.

      • thanks for the reply :) Windows isn’t really the dark side from my point of view, just kiddin’, I’m using them both daily, and both have there own pros and cons. But Apple is multiplicating the cons with their current behavior, both on OS (more and more locked each release) and Hardware (better nice than usefull) I don’t even talk about the prices… Anyway, thanks for your post, and to keep it alive :)

  14. I just wanted to say thanks for this post. It worked for me and I was surprised at how good it felt to have a decent image on my external monitor, instead of the degraded, blocky mess I was starting to become used to.

    FWIW – I initially couldn’t run csrutil in recovery mode as it wasn’t found. This was because I was running the OS (Yosemite) my Macbook had originally been supplied with. I upgraded to Sierra and after that I was able to run csrutil in recovery mode. From that point on everything went extremely smoothly.

Leave a Reply