Fix 4K Monitor Colors on MacOS Big Sur
Recently I upgraded my monitor from a Dell P2319H to a Samsung UR550 (LU28R55) to introduce myself into the 4K world. My current setup consists into a Mac Mini and company-issued Dell Latitude both through HDMI 2.0+. And it was thanks to the Windows machine that I started to notice the screen looked way better (color, sharpness) there than when I was using the Mac. Took me sometime, but I was able to fix it.
It looks like this problem doesn’t happen when a monitor is connected through a Thunderbolt/USB-C port or, probably, if you are using one of the few monitor options from the Apple Store. But if you using a different UHD monitor and a HDMI cable, it is almost certain to happen in any Mac.
The issue
I have no idea why Apple still let this happen - don’t they have QA capacity to run a quick integration test with general UHD monitors? - as it is an occurring issue dating back to 2013 at least [1]. The problem seems to be MacOS misinterpreting the plugged display and sending the colors at the YCbCr space instead of RGB.
It was causing, in my case, for images to look less sharp, a bit blurred, and shallow colored. Also, some of the display own options were not available (Samsung Magic Bright, HDMI Black Level, Eye Saver Mode), though there was no indication in the display the signal coming was in YCbCr.
The fix
First, I tried going the easy way: check calibration from System Preferences, change color options. But no luck there. Another option would be to try a different cable Thunderbolt/DisplayPort, which actually would probably fix the issue, but there was no cheap option here.
So, finally, I found what was the solution, combining two solutions. As the problem still occurs, the 2013 post is still getting updates and comments, and the first part of the solutions works: run this ruby script [2] and you’ll get a configuration file for your monitor that will override the MacOS default configuration and set it to Full RGB space.
However, the usual directory (/Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/
) to place the configuration is not accessible anymore. Since Big Sur, the System folder is read-only, even in Recovery Mode.
To save the day, I found the repository [3] saying that you can put the configuration under a different folder, accessible in normal mode. You may need to create some intermediate folders, but putting the folder generated by the Ruby script under /Library/Displays/Contents/Resources/Overrides/
works as well.
Color profiles after override. Not sure why it appears duplicated though
After reconnecting the display, the new color scheme was selected by default and everything looked just perfect! Hopefully in the next release, MacOS Monterey, this get fixed or, at least, this workaround doesn’t get torn apart.
[1] https://www.mathewinkson.com/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor