Contribute
Register

Adding/Using HiDPI custom resolutions

Status
Not open for further replies.
Hi !
Did you think this process can also be used for external monitor ?
I just bought a Dell UltraSharp U2515H with a resolution of 2560x1440 (same as iMac27) but HiDpi resolution are now available in sys pref.

What differences using external monitor ? just the ID ?

Try it and report back.
 
Hey
I got this by IOREG for the external Dell display (the product ID match with the product ID found by extracting EDID with SwitchXRes)

Code:
+-o display0  <class IODisplayConnect, id 0x10000385d, registered$    | | | | |   | {
    | | | | |   | }
    | | | | |   | 
    | | | | |   +-o AppleDisplay  <class AppleDisplay, id 0x10000385f, register$
    | | | | |       {
    | | | | |         "IOClass" = "AppleDisplay"
    | | | | |         "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"
    | | | | |         "IOProviderClass" = "IODisplayConnect"
    | | | | |         "[B]DisplayProductID[/B]" = 53358
    | | | | |         "IODisplayEDID" = <00ffffffffffff0010ac6ed04c3043310e1901$
    | | | | |         "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert$
    | | | | |         "IOPowerManagement" = {"CapabilityFlags"=49152,"MaxPowerS$
    | | | | |         "IOProbeScore" = 2000
    | | | | |         "IODisplayParameters" = {"bgsc"={"min"=0,"max"=65536,"val$
    | | | | |         "IOMatchCategory" = "IODefaultMatchCategory"
    | | | | |         "IODisplayAttributes" = {"IODisplayAttributes"=<676174760$
    | | | | |         "IODisplayConnectFlags" = <00000000>
    | | | | |         "[B]DisplayVendorID[/B]" = 4268
    | | | | |         "DisplaySerialNumber" = 826486860
    | | | | |       }
    | | | | |

Who match the EDID Extracted :
Code:
-----------------------------------------------------
------------------- MAIN EDID BLOCK -----------------
-----------------------------------------------------


EDID Version........1.4
Manufacturer........DEL (10AC)
Product ID..........[B]53358[/B] (D06E)
Serial Number.......3143304C


Manufactured........Week 14 of year 2015
Max H Size..........55 cm
Max V Size..........31 cm
Gamma...............2,20

But how i can find the 0x ID for naming the plist ?
You said :
Next, create your plist file. I create it on my desktop and then copy it to the overrides folder later. the file name should be named after your product id. In my case the product-id is 0x1482, so the name will be DisplayProductID-1482.plist.

So i need to create a DisplayProductID-53358.plist ?

Thanks
 
Hey
I got this by IOREG for the external Dell display (the product ID match with the product ID found by extracting EDID with SwitchXRes)

Code:
+-o display0  <class IODisplayConnect, id 0x10000385d, registered$    | | | | |   | {
    | | | | |   | }
    | | | | |   | 
    | | | | |   +-o AppleDisplay  <class AppleDisplay, id 0x10000385f, register$
    | | | | |       {
    | | | | |         "IOClass" = "AppleDisplay"
    | | | | |         "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"
    | | | | |         "IOProviderClass" = "IODisplayConnect"
    | | | | |         "[B]DisplayProductID[/B]" = 53358
    | | | | |         "IODisplayEDID" = <00ffffffffffff0010ac6ed04c3043310e1901$
    | | | | |         "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert$
    | | | | |         "IOPowerManagement" = {"CapabilityFlags"=49152,"MaxPowerS$
    | | | | |         "IOProbeScore" = 2000
    | | | | |         "IODisplayParameters" = {"bgsc"={"min"=0,"max"=65536,"val$
    | | | | |         "IOMatchCategory" = "IODefaultMatchCategory"
    | | | | |         "IODisplayAttributes" = {"IODisplayAttributes"=<676174760$
    | | | | |         "IODisplayConnectFlags" = <00000000>
    | | | | |         "[B]DisplayVendorID[/B]" = 4268
    | | | | |         "DisplaySerialNumber" = 826486860
    | | | | |       }
    | | | | |

Who match the EDID Extracted :
Code:
-----------------------------------------------------
------------------- MAIN EDID BLOCK -----------------
-----------------------------------------------------


EDID Version........1.4
Manufacturer........DEL (10AC)
Product ID..........[B]53358[/B] (D06E)
Serial Number.......3143304C


Manufactured........Week 14 of year 2015
Max H Size..........55 cm
Max V Size..........31 cm
Gamma...............2,20

But how i can find the 0x ID for naming the plist ?
You said :


So i need to create a DisplayProductID-53358.plist ?

Thanks

You need to convert the numbers from decimal to hex.
 
In my case the product-id is 0x1482, so the name will be DisplayProductID-1482.plist.

Product ID..........53358 (D06E)
DECIMAL > HEX : D06E

So i need to create DisplayProductID-D06E.plist or DisplayProductID-06.plist ?
Or DisplayProductID-53358 ?

Thanks for your patience
 
Product ID..........53358 (D06E)
DECIMAL > HEX : D06E

So i need to create DisplayProductID-D06E.plist or DisplayProductID-06.plist ?
Or DisplayProductID-53358 ?

Thanks for your patience

The directory and filename are based on hex. It is covered in post #1.

DisplayProductID-D06E
 
Ok so just tried to create the directory, seem like the Overrides directory is not present on the same place with El capitan.

Got this after running the terminal mkdir
Code:
MacBook-Pro-de-Florian:~ florian$ sudo mkdir /System/Library/Displays/Overrides/DisplayVendorID-D06EPassword:
mkdir: /System/Library/Displays/Overrides: No such file or directory

After a little digging


Code:
MacBook-Pro-de-Florian:Displays florian$ cdMacBook-Pro-de-Florian:~ florian$ cd /System/Library/Displays/Contents/Resources/Overrides/
MacBook-Pro-de-Florian:Overrides florian$ ls
DisplayVendorID-10ac	
	DisplayVendorID-4dd9
DisplayVendorID-11a9	
	DisplayVendorID-5a63
DisplayVendorID-1e6d	
	DisplayVendorID-5b4
DisplayVendorID-2283	
	DisplayVendorID-610
DisplayVendorID-34a9	
	DisplayVendorID-68c
DisplayVendorID-38a3	
	DisplayVendorID-756e6b6e
DisplayVendorID-469	
	DisplayVendorID-daf
DisplayVendorID-4c2d	
	Icons.plist
DisplayVendorID-4d10	
	Models
MacBook-Pro-de-Florian:Overrides florian$ sudo mkdir DisplayVendorID-D06E
Password:
mkdir: DisplayVendorID-D06E: Operation not permitted
MacBook-Pro-de-Florian:Overrides florian$

Seem like the directory is protected, can't create file on with root account ?
 
Ok so just tried to create the directory, seem like the Overrides directory is not present on the same place with El capitan.

Got this after running the terminal mkdir
Code:
MacBook-Pro-de-Florian:~ florian$ sudo mkdir /System/Library/Displays/Overrides/DisplayVendorID-D06EPassword:
mkdir: /System/Library/Displays/Overrides: No such file or directory

After a little digging


Code:
MacBook-Pro-de-Florian:Displays florian$ cdMacBook-Pro-de-Florian:~ florian$ cd /System/Library/Displays/Contents/Resources/Overrides/
MacBook-Pro-de-Florian:Overrides florian$ ls
DisplayVendorID-10ac	
	DisplayVendorID-4dd9
DisplayVendorID-11a9	
	DisplayVendorID-5a63
DisplayVendorID-1e6d	
	DisplayVendorID-5b4
DisplayVendorID-2283	
	DisplayVendorID-610
DisplayVendorID-34a9	
	DisplayVendorID-68c
DisplayVendorID-38a3	
	DisplayVendorID-756e6b6e
DisplayVendorID-469	
	DisplayVendorID-daf
DisplayVendorID-4c2d	
	Icons.plist
DisplayVendorID-4d10	
	Models
MacBook-Pro-de-Florian:Overrides florian$ sudo mkdir DisplayVendorID-D06E
Password:
mkdir: DisplayVendorID-D06E: Operation not permitted
MacBook-Pro-de-Florian:Overrides florian$

Seem like the directory is protected, can't create file on with root account ?

Kernel flag "rootless=0"
 
I'am on a MBP retina Early 2015 no more on clover , any workaround to this without KernelFlag ?
Maybe using a linux stick for accessing file directly ?
 
I'am on a MBP retina Early 2015 no more on clover , any workaround to this without KernelFlag ?
Maybe using a linux stick for accessing file directly ?

sudo nvram boot-args="rootless=0"

You may have to do it from Recovery mode.
 
sudo nvram boot-args="rootless=0"

You may have to do it from Recovery mode.

Worked

Now i just figured out that this part :
In my case, the vendor-id is 0xdae, so I need to create a directory (it may already be present):
Code:

sudo mkdir /System/Library/Displays/Overrides/DisplayVendorID-dae

So you using the HEX value of the VENDOR ID not PRODUCT ID
Those are the value i got for my external Dell monitor from EDID&IOREG :
Code:
[COLOR=#3E3E3E][FONT=Courier]DisplayVendorID = 4268
[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]DisplayProductID = 53358[/FONT][/COLOR]

Converting to HEX
Code:
[COLOR=#3E3E3E][FONT=Courier]DisplayVendorID HEX : 10AC
[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]DisplayProductID HEX : D06E[/FONT][/COLOR]

So the directory must be DisplayVendorID-10ac
And i found that the directory already exist and has files in it.

Screen-Shot-2015-07-10-13-59-07.png

In the file DisplayProductID-4093 i got this :

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>DisplayProductID</key>
        <integer>16531</integer>
        <key>DisplayVendorID</key>
        <integer>4268</integer>
        <key>IODisplayEDID</key>
        <data>AP///////wAQrJNAAAAAAP8XAQS1Rid4OnPgo1M2tiYNUVOlSwCBALMA0QBxT6lAg$
</dict>
</plist>

And in the file DisplayProductID-409c :

Code:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>DisplayProductID</key>
        <integer>16540</integer>
        <key>DisplayVendorID</key>
        <integer>4268</integer>
        <key>IODisplayEDID</key>
        <data>AP///////wAQrJxAAAAAAP8XAQS1NR54Oh31rk81syUNUFSlSwCBALMA0QBxT6lAg$
</dict>
</plist>

So i should just add the scale resolution after ?
Like

Code:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>DisplayProductID</key>
        <integer>16540</integer>
        <key>DisplayVendorID</key>
        <integer>4268</integer>
        <key>IODisplayEDID</key>
        <data>AP///////wAQrJxAAAAAAP8XAQS1NR54Oh31rk81syUNUFSlSwCBALMA0QBxT6lAg$
        <key>scale-resolutions</key>	        <array>
		           <data>AAALQAAABlQ=</data>
		           <data>AAAFoAAAAyo=</data>
		           <data>AAAKrAAABgA=</data>
		          <data>AAAFVgAAAwA=</data>
	      </array>
</dict>
</plist>

So for a HiDPI Resolution of 1080P 1920 x 1080 (I got a base resolution of 2560x1440) what i should add as value ?

Thanks
 
Status
Not open for further replies.
Back
Top