Mac display glitch in bright-white areas: color profile workaround
Monday, April 23rd, 2012My MacBook Pro display started malfunctioning yesterday, exhibiting flickering vertical cyan stripes in all bright-white areas, and flickering red in pitch-black areas. This doesn’t go away on reboot, and happens on the laptop screen itself and not on external monitors. So probably a hardware failure.
I’ll get it repaired, of course, but in the meantime I have a workaround: I tweaked the color profile so that the brightest RGB values map to only 96.5% of the display’s full physical brightness, and the darkest to 3% instead of 0%. Works like a charm for me. If your machine is out of warranty, you might prefer this to an expensive repair job (assuming your display problem also affects only brightest-white and darkest-black areas).
Cons: this makes the display a little bit less bright and contrasty, and might cause color hue shifts perceptible to someone more chromatically delicate than me.
Here’s the tweaked color profile (no warranty implied, may eat your computer alive, I am not liable, etc.). To try it out:
- download this file and put it in
/Library/ColorSync/Profiles/Displays - open System Preferences → Displays → Color
- select the “GulliHack” display profile
If the above steps do not seem easy to you, get someone technically minded to help.
How I made this (for the technically minded):
- Download remapcolorprofile.py. This reads a hex dump of a brightness curve as expressed in ICC files, snips off the top end of the curve, and linearly interpolates the remainder to the original number of values, maintaining its overall shape.
- In
/Library/ColorSync/Profiles/Displays, find the default color profile for your laptop screen (on my machine the filename isColor LCD-00000610-0000-A005-0000-000004280140.iccon my machine) and copy it to another file. - Open that file in a hex editor, such as 0xED.
- Find the token
vcgt(0x76636774) in this file. It appears in two places; go to the second (for me it was at offset 0x0A88). - 18 bytes on from that, find a 512-byte long sequence of two-byte words, starting with
0x0000and ending with0xFFFF. Select that (make sure you got exactly 512 bytes; bottom right of the window should show “Selection: 200”) and copy. - Run this in a terminal:
pbpaste | python remapcolorprofile.py 0.03 0.965 | pbcopy(your particular problem may call for a different proportion; I tried a few and 3% and 96.5% were just right for my problem). - Go back to your hex editor and paste (making sure the “Write Mode” is “Overwrite”, not “Insert”). Make sure the length didn’t change.
- Do the same for the next two 512-byte sequences (there’s one sequence for each primary color).
- Save, and try out the color profile.

