<?xml version='1.0' encoding='UTF-8'?> |
<!DOCTYPEplist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> |
<plistversion='1.0'> |
<dict> |
<key>DisplayProductName</key> |
<string>Dell U3011 (RGB 4:4:4 Only)</string> |
<key>IODisplayEDID</key> |
<data>AP///////wAQrGVATDNCQgIXAQS1QCh4Io2FrU81sSUOUFSlSwBxT4EAgYCp |
QNEA0UABAQEB4mgAoKBALmAwIDYAgZEhAAAaAAAA/wBQSDVOWTMxR0JCM0wK |
AAAA/ABERUxMIFUzMDExCiAgAAAA/QAxVh1xHAAKICAgICAgABI= |
</data> |
<key>DisplayVendorID</key> |
<integer>4268</integer> |
<key>DisplayProductID</key> |
<integer>16485</integer> |
</dict> |
</plist> |
<?xml version='1.0' encoding='UTF-8'?> |
<!DOCTYPEplist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> |
<plistversion='1.0'> |
<dict> |
<key>DisplayProductName</key> |
<string>Dell U2713HM (RGB 4:4:4 Only)</string> |
<key>IODisplayEDID</key> |
<data>AP///////wAQrIBATFEyQSsWAQSlPCJ4Iku1p1ZLoyUKUFSlSwCBALMA0QBx |
T6lAgYABAQEBVl4AoKCgKVAwIDUAVVAhAAAaAAAA/wBHSzBLRDJBTUEyUUwK |
AAAA/ABERUxMIFUyNzEzSE0KAAAA/QAxVh1xHgEKICAgICAgAKE= |
</data> |
<key>DisplayVendorID</key> |
<integer>4268</integer> |
<key>DisplayProductID</key> |
<integer>16512</integer> |
</dict> |
</plist> |
#!/usr/bin/ruby |
# Create display override file to force Mac OS X to use RGB mode for Display |
# see http://embdev.net/topic/284710 |
require'base64' |
data=`ioreg -l -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)rescuenil |
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 |
OS X Yosemite 10.10.2 |