After connecting my newly-purchased Mac mini 2018 to my Dell U2410 24 inch 1920×1200 LCD monitor by HDMI cable, I notice that the text is a little blurry and pixelated. The lines aren’t smooth, but jagged. The text looks like it would on an old analog TV.
The problem is caused by the Mac choosing to talk to the Dell monitor using YPbPr, an input color format previously used by S-Video and composite video for analog TVs. The Dell monitor supports two input color formats, RGB (digital computer standard) and YPbPr (analog TV standard). I am not sure why the Mac defaulted to using YPbPr, instead of the superior RGB color format.
Note: I did not see this problem when connecting my MacBook Air 2015 to the Dell monitor using the Apple Mini DisplayPort to DVI adapter. Online comments seem to indicate that this issue only occurs with the 2018 (and probably later) Macs.
The solution is to force the Mac to use the RGB input color format for my Dell U2410 monitor. This is accomplished by creating or overwriting the macOS’s EDID (Extended Display Identification Data) configuration file for the Dell monitor. The details are documented by this webpage, Fixing the External Monitor Color Problem with My 2018 MacBook Pro.
Tip: To verify that YPbPr is being used by your monitor, check the “Input Color Format” in the monitor settings. On my Dell monitor, I go to the monitor’s settings Menu and select “Color Settings” to view the “Input Color Format” field.
Because the EDID override files are located in a protected system directory, “/System/Library/Displays/Contents/Resources/Overrides/”, we will need to use the macOS Recovery Mode to write to it.
Here are the steps I took:
- Download the “patch-edid.rb” script file from GitHub’s adaugherity/patch-edid.rb project. This script will create an override EDID file to force RGB usage. Look for the “Download ZIP” button near the top-right. The archive file will be downloaded to “~/Downloads/7435890-00ff3ead17ae77d2f1c376e90831c037b7dea7ed.zip”.
- Unzip the downloaded archive file by double-clicking on it. (My Safari browser automatically unzipped the archive file after downloading.)
- Launch the Terminal app and run these commands:
# Rename the unzipped folder to a nicer name, "patch-edid"
mv ~/Downloads/7435890-00ff3ead17ae77d2f1c376e90831c037b7dea7ed ~/Downloads/patch-edid
# Change directory to the "patch-edid" folder
# Ruby should be pre-installed; double-check by getting version info
# Execute the script
- The script outputted the following on my Mac:
Found display 'DELL U2410': vendor ID=4268 (0x10ac), product ID=61462 (0xf016)
Raw EDID data:
Setting color support to RGB 4:4:4 only
Number of extension blocks: 1
removing extension block
Recalculated checksum: 0x38
Output file: /Users/chanh/Downloads/patch-edid/DisplayVendorID-10ac/DisplayProductID-f016
- Take note of the output file, “/DisplayVendorID-10ac/DisplayProductID-f016”. We will need to put the ProductID file with its VendorID parent folder under the EDID overrides folder like so: “/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-10ac/DisplayProductID-f016”.
- On my Mac, the “DisplayProductID-f016” file did not exist in the system “Overrides” folder. However, the “DisplayVendorID-10ac” folder did already exist there.
- The script outputted the following on my Mac:
- Reboot into the macOS Recovery Mode. When the Mac starts up, hold down “Command-R” (hold down both the “Command ⌘” and “R” keys) and release when you see the Apple logo.
- Tip: An easier alternative is to hold the “Option/Alt” key on boot to launch the Startup Manager. Then just click and release “Command-R” keys to launch into the recovery mode.
- Once in recovery mode (you will see “macOS Utilities” in the top menu bar), click on the “Utilities” menu and select “Terminal” to launch the Terminal application.
- On my Mac, the main “Macintosh HD” drive is automatically mounted. If it isn’t on your system, launch the “Disk Utility” first (before the “Terminal”), select the “Macintosh HD” disk (or whatever you named it), and click the “Mount” button. Quit the “Disk Utility” when done in order to launch the Terminal application.
- Run these commands in the Terminal:
# Change directory to your "patch-edid" directory
# Note: Change the "username" string below to your actual username
cd /Volumes/Macintosh\ HD/Users/username/Downloads/patch-edid/
# Copy your override subfolder+file into the EDID overrides system directory
# Note: Change the "DisplayVendorID-XXXX" to your actual DisplayVendorID
# Do not include ending forward-slash at end of "DisplayVendorID-XXXX"
cp -R DisplayVendorID-XXXX /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/
- Quit the “macOS Utilities” to reboot.
Note: macOS 11.0 Big Sur has made the “/System” directory read-only so the above command will fail. However, according to this thread How to make root volume writeable in Big Sur?, the fix above still works if you copy to the “/Library” directory, instead of the “/System/Library”. So the command should be modified to look like this:
You may need to create any subdirectory that doesn’t already exist. Unfortunately, I don’t have Big Sur so I can’t verify if the above works or not.
After reboot, the text on the Dell monitor is no longer blurry and pixelated. The text looks sharper and the lines are smoother. (Unfortunately, the photo to the right does not show the blurry/pixelated text very well.) When I check the monitor’s “Input Color Format”, it now says “RGB”. Success.