Skip to content

MethodGrab/macos-external-display-fix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

macOS External Display Fix

A fix for blurry text on external displays in macOS & OS X.

This is based on my original gist.

Notes

  • Entering the recovery mode keyboard combination (CMD-R) must be done using the laptop keyboard. Using an external keyboard (e.g. Apple Magic keyboard) will not work.

Instructions

11 macOS Big Sur / 12 macOS Monterey

  1. Download and run the patch (src) which will create a new directory in the CWD called DisplayVendorID-XXXX:

    ruby ./patch-edid.rb
  2. Copy the patch dir to /Library/Displays/Contents/Resources/Overrides:
    XXXX is the suffix of the folder the patch script created.
    ~/Downloads is the path patch-edid.rb was run in.
    Note: the path is /Library/..., not /System/Library/....

    sudo mkdir -p /Library/Displays/Contents/Resources/Overrides
    sudo cp -r ~/Downloads/DisplayVendorID-XXXX /Library/Displays/Contents/Resources/Overrides
  3. Reboot.

  4. That's it!

Notes

  • Tested in Big Sur & Monterey.
  • Rebooting into safe mode is no longer required!
    It's also no longer possible because as of Big Sur the file system is mounted read-only in recovery mode which makes editing /System/Library/Displays/Contents/Resources/Overrides impossible.

10.15 macOS Catalina

  1. Download and run the patch (src) which will create a new directory in the CWD called DisplayVendorID-XXXX:

    ruby ./patch-edid.rb
  2. Reboot into recovery mode (hold down CMD-R while rebooting)

  3. Open Terminal from the Utilities menu
    Note: If you use FileVault, you will need to unlock & mount Macintosh HD before continuing:

    1. diskutil apfs list

    2. Find the volume identifier for Macintosh HD:

      APFS Volume Disk (Role):  disk1s1 (No specific role) // `disk1s1` is the volume identifier
      Name:                     Macintosh HD (Case-insensitive)
      Mount Point:              /
      Capacity Consumed:        250GB
      Encrypted:                Yes
    3. diskutil apfs unlockVolume /dev/volume_identifier where volume_identifier is the one shown in the diskutil listing

    4. After unlocking the disk with an approved FileVault user, Macintosh HD will now be mounted at /Volumes/Macintosh HD

  4. Copy the patch dir to /System/Library/Displays/Contents/Resources/Overrides/, I recommend backing up any existing directory if it exists for your display:
    XXXX is the suffix of the folder the patch script created.
    YYYY is the suffix of the file it created.
    /Volumes/Macintosh\ HD/Users/me/Downloads is the path patch-edid.rb was run in.

    cd /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/
    mv DisplayVendorID-XXXX DisplayVendorID-XXXX-BACKUP
    mkdir DisplayVendorID-XXXX
    cp /Volumes/Macintosh\ HD/Users/me/Downloads/DisplayVendorID-XXXX/DisplayProductID-YYYY ./DisplayVendorID-XXXX
  5. Reboot back into normal mode.

  6. That's it!

Notes

  • Disabling System Integrity Protection (SIP) is no longer required in macOS Catalina.

10.12 macOS Sierra

  1. Download and run the patch (src) which will create a new directory in the CWD called DisplayVendorID-XXXX:

    ruby ./patch-edid.rb
  2. Reboot into recovery mode (hold down CMD-R while rebooting)

  3. Disable SIP:

    csrutil disable
  4. Reboot into recovery mode (hold down CMD-R while rebooting) again so the SIP change takes effect

  5. Open Terminal from the Utilities menu
    Note: If you use FileVault, you will need to unlock & mount Macintosh HD before continuing:

    1. diskutil apfs list

    2. Find the volume identifier for Macintosh HD:

      APFS Volume Disk (Role):  disk1s1 (No specific role) // `disk1s1` is the volume identifier
      Name:                     Macintosh HD (Case-insensitive)
      Mount Point:              /
      Capacity Consumed:        250GB
      Encrypted:                Yes
    3. diskutil apfs unlockVolume /dev/volume_identifier where volume_identifier is the one shown in the diskutil listing

    4. After unlocking the disk with an approved FileVault user, Macintosh HD will now be mounted at /Volumes/Macintosh HD

  6. Copy the patch dir to /System/Library/Displays/Contents/Resources/Overrides/, I recommend backing up any existing directory if it exists for your display:
    XXXX is the suffix of the folder the patch script created.
    YYYY is the suffix of the file it created.
    /Volumes/Macintosh\ HD/Users/me/Downloads is the path patch-edid.rb was run in.

    cd /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/
    mv DisplayVendorID-XXXX DisplayVendorID-XXXX-BACKUP
    mkdir DisplayVendorID-XXXX
    cp /Volumes/Macintosh\ HD/Users/me/Downloads/DisplayVendorID-XXXX/DisplayProductID-YYYY ./DisplayVendorID-XXXX
  7. Re-enable SIP:

    csrutil enable
  8. Reboot back into normal mode.

  9. That's it!

  10. You can verify that SIP has been re-enabled with:

    csrutil status

10.11 OS X El Capitan

  1. Download and run the patch (src) which will create a new directory in the CWD called DisplayVendorID-XXXX:

    ruby ./patch-edid.rb
  2. Reboot into recovery mode (hold down CMD-R while rebooting)

  3. Disable SIP:

    csrutil disable
  4. Reboot into recovery mode (hold down CMD-R while rebooting) again so the SIP change takes effect

  5. Open Terminal from the Utilities menu
    Note: If you use FileVault, you will need to unlock & mount Macintosh HD before continuing:

    1. diskutil list

    2. Find the lvUUID:

      Logical Volume on disk0s2
      4B2EFAAE-C871-4E6D-AB15-2DDE604B97CE // this is lvUUID
      Locked Encrypted
    3. diskutil cs unlockVolume lvUUID where lvUUID is the one shown in the diskutil listing

    4. After unlocking the disk with an approved FileVault user, Macintosh HD will now be mounted at /Volumes/Macintosh HD

  6. Copy the patch dir to /System/Library/Displays/Contents/Resources/Overrides/, I recommend backing up any existing directory if it exists for your display:
    XXXX is the suffix of the folder the patch script created.
    YYYY is the suffix of the file it created.
    /Volumes/Macintosh\ HD/Users/me/Downloads is the path patch-edid.rb was run in.

    cd /Volumes/Macintosh\ HD/System/Library/Displays/Contents/Resources/Overrides/
    mv DisplayVendorID-XXXX DisplayVendorID-XXXX-BACKUP
    mkdir DisplayVendorID-XXXX
    cp /Volumes/Macintosh\ HD/Users/me/Downloads/DisplayVendorID-XXXX/DisplayProductID-YYYY ./DisplayVendorID-XXXX
  7. Re-enable SIP:

    csrutil enable
  8. Reboot back into normal mode.

  9. That's it!

  10. You can verify that SIP has been re-enabled with:

    csrutil status

Sources

About

Instructions for fixing blurry text on external displays in macOS.

Resources

Stars

Watchers

Forks

Languages