-
-
Save JohannesHoppe/f7a477b4660b6f4f42b6ee8356cfef0d to your computer and use it in GitHub Desktop.
| #!/usr/bin/ruby | |
| # Create display override file to force Mac OS X to use RGB mode for Display | |
| # see http://embdev.net/topic/284710 | |
| # | |
| # Update 2013-06-24: added -w0 option to prevent truncated lines | |
| require 'base64' | |
| data=`ioreg -l -w0 -d0 -r -c AppleDisplay` | |
| edid_hex=data.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1] | |
| vendorid=data.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i | |
| productid=data.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i | |
| puts "found display: vendorid #{vendorid}, productid #{productid}, EDID:\n#{edid_hex}" | |
| bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten | |
| puts "Setting color support to RGB 4:4:4 only" | |
| bytes[24] &= ~(0b11000) | |
| puts "Number of extension blocks: #{bytes[126]}" | |
| puts "removing extension block" | |
| bytes = bytes[0..127] | |
| bytes[126] = 0 | |
| bytes[127] = (0x100-(bytes[0..126].reduce(:+) % 256)) % 256 | |
| puts | |
| puts "Recalculated checksum: 0x%x" % bytes[127] | |
| puts "new EDID:\n#{bytes.map{|b|"%02X"%b}.join}" | |
| Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil | |
| f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w') | |
| f.write '<?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0">' | |
| f.write " | |
| <dict> | |
| <key>DisplayProductName</key> | |
| <string>Display with forced RGB mode (EDID override)</string> | |
| <key>IODisplayEDID</key> | |
| <data>#{Base64.encode64(bytes.pack('C*'))}</data> | |
| <key>DisplayVendorID</key> | |
| <integer>#{vendorid}</integer> | |
| <key>DisplayProductID</key> | |
| <integer>#{productid}</integer> | |
| </dict> | |
| </plist>" | |
| f.close |
One should simply never update his Mac operating system! 😉
Doesn't work on Big Sur.
Overridesfolder doesn't exist and not even with sudo can you do anything in that folder and I don't really want to disable system protection. F* Apple. Why are the most professional computers so bad at supporting plan simple things?
In BigSur, create the /Library/Displays/Contents/Resources/Overrides/ path to place the DisplayVendorID-xxxx folder in. No need to disable SIP etc
Doesn't work on Big Sur.
Overridesfolder doesn't exist and not even with sudo can you do anything in that folder and I don't really want to disable system protection. F* Apple. Why are the most professional computers so bad at supporting plan simple things?In BigSur, create the
/Library/Displays/Contents/Resources/Overrides/path to place theDisplayVendorID-xxxxfolder in. No need to disable SIP etc
Thanks! This worked on BigSur!
Also to note, I did not have to restart the MBP. The new profile showed up the moment I lifted the lid again.
I am using a 16' MBP from 2019
Doesn't work on Big Sur.
Overridesfolder doesn't exist and not even with sudo can you do anything in that folder and I don't really want to disable system protection. F* Apple. Why are the most professional computers so bad at supporting plan simple things?