rMBP - El Capitan - Monitor externo borroso

Espero que alguien pueda ayudarme ya que esto me está volviendo loco...

El fin de semana compré una nueva Macbook Pro Retina (modelo de principios de 2015). Antes de conectarlo a un monitor externo, actualicé a El Capitan y el dispositivo por sí solo funciona perfectamente.

Cuando lo conecto a mi monitor externo, un Dell U2412M, ciertas partes de la pantalla están borrosas. Algunas investigaciones indicaron que puede estar usando el espacio de color incorrecto y usando el conocido script que generé e instalé un nuevo perfil para forzar RGB. Puede haber habido una ligera mejoría, difícil de decir...

Luego leí sobre la configuración de 'AppleFontSmoothing' y probé todas las configuraciones disponibles, nuevamente, puede haber una ligera mejora. Prácticamente había decidido vivir con ello. Hasta que obtuve una vista previa de un jpg en el buscador y se parecía a la imagen (1) a continuación.

Luego arrastré la ventana del buscador de regreso a la pantalla de retina incorporada, y se parecía a la imagen (2) a continuación.

Mucho más suave, pero con una resolución más alta, no es una gran sorpresa. Ahora, sin cambiar nada en absoluto, arrastré la ventana del buscador de regreso al monitor Dell y me sorprendió ver que se mantuvo la imagen fluida.

capturas de pantalla de no suavizado

Para información, el efecto no es visiblemente diferente usando un cable mini-displayport a DVI-D o mdp a display-port.

Para que quede claro, las imágenes 1 y 3 de arriba son capturas de pantalla de la misma ventana, en el mismo monitor conectado de la misma manera a la misma máquina. La única diferencia es que entre estas capturas de pantalla, la ventana tuvo una breve visita a la pantalla integrada.

Respuestas (1)

Hay un script de Ruby aquí:

https://gist.github.com/bastibense/6549835

#!/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

Tendrás que ejecutarlo en el modo sin raíz de El Capitan para que funcione.

Gracias por su aporte, pero ya he usado la anulación de EDID, vea el párrafo tres de mi pregunta.