How to Fix Dell Monitors With Mac Laptops

The Problem

I’m lucky to have a work-provided MacBook Pro as my primary system along with a pretty nice Dell UltraSharp 30-in monitor at the office. One of the things I’ve always struggled with in this combination is really poor resolution when the Dell is connected. This problem with Dell monitors isn’t quite the “fuzzy font” problem you’ll see if you search around (that’s mostly referring to font smoothing or anti-aliasing adjustments which macOS can apply). Instead it’s more like the screen is running at a much lower than native resolution.

This weekend I finally upgraded my system to macOS Mojave (10.14) and this morning in the office my favorite display bug had once again returned. These are my notes for fixing the issue with links to the original sources.

The Solution

The canonical article I found is on the EmbDev.net forums where the problem and solution (paraphrased) is summarized as:

Many Dell monitors (e.g., U2713H, U2713HM, …) look really bad when connected to a Mac (OS X 10.8.2) via DisplayPort, as if some sharpening or contrast enhancement was applied. Others have reported the same problem. The reason is that the DisplayPort uses YCbCr colors instead of RGB to drive the display, which limits the range of colors and apparently causes the display to apply some undesired post processing. The problem can be solved by overriding the EDID data of the display in order to tell OS X that the display only supports RGB.

The fix is to create a display EDID profile to force macOS to use RGB mode. You can read through the forum post for details and check this this patch-edid patch for a Ruby script to make it pretty easy.

The Steps

These are the steps to run that patch script and get a display override file in the right place on macOS Mojave. This should only be done by advanced users and/or those who know what they’re doing because it involves disabling Apple’s System Integrity Protection for a short time.

Steps:

  1. Restart the Mac in Recovery Mode (hold down Cmd-R once the Apple logo appears)
  2. Open a terminal window and disable SIP: csrutil disable
  3. Restart the Mac again and let it boot normally
  4. Download the patch-edid.rb script
  5. Run the script with Ruby: ruby patch-edid.rb
  6. Confirm that you have a local folder DisplayVendorID-10ac with a file DisplayProductID-xxxx
  7. Copy the folder DisplayVendorID-10ac and its contents over to /System/Library/Displays/Contents/Resources/Overrides/ (sudo will be required)
  8. Restart the Mac in Recovery Mode once again
  9. Open a terminal window and re-enable SIP: csrutil enable
  10. Restart the Mac again and let it boot normally
  11. Open the Display Preferences for the external Dell monitor and under the Color tab select the “forced RGB mode (EDID override)” option
  12. One more system restart may be needed for the changes to take effect