Skip to content

Instantly share code, notes, and snippets.

@alexdilley
Created September 9, 2020 17:59
Show Gist options
  • Save alexdilley/a8737957419a763798400b5fc6caa478 to your computer and use it in GitHub Desktop.
Save alexdilley/a8737957419a763798400b5fc6caa478 to your computer and use it in GitHub Desktop.
Enable custom scaled resolutions on Pro Display XDR

(Instructions are based on a Mac OS Catalina install.)

Detect your display:

ioreg -lw0 | grep IODisplayPrefsKey

Will return an AppleDisplay entry with a likely DisplayVendorID of 610 and DisplayProductID of ae22.

Copy read-only system p-list file (replacing IDs in paths appropriately) to a writeable equivalent:

sudo mkdir -p /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610
sudo cp {/System,}/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae22

Each custom resolution requires a pixel-doubled pairing. Calculate the property values using this command; for example, here I am adding a 4K scaled resolution, and thus its 8K pairing:

printf '%08x %08x\n' 3840 2160 | xxd -r -p | base64
# AAAPAAAACHA=
printf '%08x %08x\n' 7680 4320 | xxd -r -p | base64
# AAAeAAAAEOA=

Add these to the scale-resolutions property array, adding an equivalent secondary entry for them that follows the same hex suffix pattern as the existing values:

sudo ${EDITOR-nano} /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae22
  <key>scale-resolutions</key>
 	<array>
+		<data>AAAeAAAAEOA=</data>
 		<data>AAAXgAAADTg=</data>
+		<data>AAAPAAAACHA=</data>
 		<data>AAAUAAAAC0A=</data>
 		<data>AAAPAAAACHA=</data>
 		<data>AAALwAAABpw=</data>
 		<data>AAAKAAAABaA=</data>
 		<data>AAAHgAAABDg=</data>
 		<data>AAAF4AAAA04=</data>
 		<data>AAAFAAAAAtA=</data>
+		<data>AAAeAAAAEOAAAAAJAKAAAA==</data>
 		<data>AAAXgAAADTgAAAAJAKAAAA==</data>
+		<data>AAAPAAAACHAAAAAJAKAAAA==</data>
 		<data>AAAUAAAAC0AAAAAJAKAAAA==</data>
 		<data>AAAPAAAACHAAAAAJAKAAAA==</data>
 		<data>AAALwAAABpwAAAAJAKAAAA==</data>
 		<data>AAAKAAAABaAAAAAJAKAAAA==</data>
 		<data>AAAHgAAABDgAAAAJAKAAAA==</data>
 		<data>AAAF4AAAA04AAAAJAKAAAA==</data>
 		<data>AAAFAAAAAtAAAAAJAKAAAA==</data>
 	</array>

(Note, AAAXgAAADTg and AAAUAAAAC0A are the 'Default for display' 6K and 3K entries.)

Reboot for the change to take effect. Custom scaled resolutions will appear under System Preferences > Display settings when holding down the Option key and clicking the 'Scaled' option.

@koush
Copy link

koush commented Oct 31, 2020

Perfect thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment