Open dubefab opened 3 years ago
Have you tried disabling SIP?
Yes.
Try to clone this repository and install the HEAD version. If that does not work, then it could take more time because I only have an intel mac.
Still no luck, any update on this?
I think this would be the fix. Please wait for the next Big Sur update, and check if it works (hopefully).
try 2.5
unfortunately, it still doesn't work on Mac mini M1 with monitor Philips 245E1 in my case at least. No lightning indicator shows in any resolutions.
@turiguiliano88 Please show what it has generated in /Library/Displays/Contents/Resources/Overrides
folder
I'm on the MacBook Air w/ Big Sur, latest updates. I've also downloaded the latest Quartz Debug and made sure that the HiDPI setting is turned on.
ls -lah /Library/Displays/Contents/Resources/Overrides
total 8
drwxr-xr-x 4 root wheel 128B Jan 6 11:27 .
drwxr-xr-x 3 root wheel 96B Jan 6 11:20 ..
drwxr-xr-x 3 root wheel 96B Jan 6 11:20 DisplayVendorID-610
-rw-r--r-- 1 aj staff 861B Jan 6 11:27 Icons.plist
I've added these settings for my Thunderbolt Display:
And I get no Lightning bolts in the menu:
I am using v25.0
I also did a full reboot, just to be sure. No dice.
Hi, I am having the exact same issue on the M1 Mac. I have the newest version 2.5 and added a custom resolution. Disabled SIP and did several reboots. The custom resolution does not show up. However, interestingly the name and icon changes are in effect.
@coolaj86 @phipz Please attach the generated plists here.
@usr-sse2 Could you give me the path of the specific plist you'd like?
/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-<your display vendor ID>/DisplayProductID-<your display product ID>
@usr-sse2 There you go Overrides.zip
<?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">
<dict>
<key>DisplayProductID</key>
<integer>37415</integer>
<key>DisplayProductName</key>
<string>Thunderbolt Display</string>
<key>scale-resolutions</key>
<array>
<data>
AAAMgAAABwg=
</data>
<data>
AAAKAAAABaA=
</data>
<data>
AAAMgAAABwgAAAAJACAAAA==
</data>
<data>
AAAKAAAABaAAAAAJACAAAA==
</data>
</array>
<key>target-default-ppmm</key>
<real>10.01</real>
</dict>
</plist>
@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work?
Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1 so I plug it to Intel Mac to generate it and copy over Mac mini M1. /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c
<?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">
<dict>
<key>DisplayProductName</key>
<string>PHL 245E1</string>
<key>DisplayProductID</key>
<integer>49675</integer>
<key>DisplayVendorID</key>
<integer>16652</integer>
<key>scale-resolutions</key>
<array>
<data>AAAKAAAABaAAAAABACAAAA==</data>
<data>AAAFAAAAAtAAAAABACAAAA==</data>
<data>AAAPAAAACHAAAAABACAAAA==</data>
<data>AAAHgAAABDgAAAABACAAAA==</data>
<data>AAAMgAAABwgAAAABACAAAA==</data>
<data>AAAGQAAAA4QAAAABACAAAA==</data>
<data>AAAKAgAABaAAAAABACAAAA==</data>
<data>AAAKrAAABgAAAAABACAAAA==</data>
<data>AAAFVgAAAwAAAAABACAAAA==</data>
</array>
</dict>
</plist>
@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work?
The monitor is connected via a DisplayLink 6950 USB adaptor. Interestingly, the monitor natively supports full 4K resolution, which is offered by the system. Also 1080p HiDPI is offered. But the HiDPI resolutions in between are missing, that‘s the reason why I‘d like to add them manually.
The same monitor connected natively, supports all HiDPI resolutions in between without problem. So, adding the resolutions with the tool should generally not overwhelm the M1 chip.
@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work? ...
@phipz DisplayLink is a virtual GPU, so the adapter may be the problem because it should support 6016x3384 for this to work. Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)
Sent with GitHawk
Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)
@usr-sse2 Checked the two, with interesting results:
1) The mac / RDM recognizes the external display as the same display, independent whether it is connected directly or via DisplayLink. That means, after saving RDM settings on the DisplayLink-connected display, the same settings appear if the display is then connected directly. 2) The RDM edits lead to no effect when connected via DisplayLink. 3) The RDM edits become available, if the Display is connected directly.
Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)
@usr-sse2 Checked the two, with interesting results:
- The mac / RDM recognizes the external display as the same display, independent whether it is connected directly or via DisplayLink. That means, after saving RDM settings on the DisplayLink-connected display, the same settings appear if the display is then connected directly.
Yes, it's the expected behavior, because the vendor and device ID of display characterize the display itself, not the GPU it's attached to.
- The RDM edits lead to no effect when connected via DisplayLink.
- The RDM edits become available, if the Display is connected directly.
So RDM is working on M1, but DisplayLink driver ignores the override plists and uses only what it gets from the display EDID.
Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1
Why can't you use RDM 2.5 to generate the plist file directly on Mac mini M1?
so I plug it to Intel Mac to generate it and copy over Mac mini M1.
/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c
<?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"> <dict> <key>DisplayProductName</key> <string>PHL 245E1</string> <key>DisplayProductID</key> <integer>49675</integer> <key>DisplayVendorID</key> <integer>16652</integer> <key>scale-resolutions</key> <array> <data>AAAKAAAABaAAAAABACAAAA==</data> <data>AAAFAAAAAtAAAAABACAAAA==</data> <data>AAAPAAAACHAAAAABACAAAA==</data> <data>AAAHgAAABDgAAAABACAAAA==</data> <data>AAAMgAAABwgAAAABACAAAA==</data> <data>AAAGQAAAA4QAAAABACAAAA==</data> <data>AAAKAgAABaAAAAABACAAAA==</data> <data>AAAKrAAABgAAAAABACAAAA==</data> <data>AAAFVgAAAwAAAAABACAAAA==</data> </array> </dict> </plist>
The plist looks like what RDM 2.4 generates without manually duplicating resolutions, which is necessary. To get 1280x720 HiDPI, for example, you need to specify 2560x1440 (non-HiDPI) and 1280x720 HiDPI. RDM 2.5 does it automatically, so that each HiDPI resolution gets its counterpart in the plist.
Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1
Why can't you use RDM 2.5 to generate the plist file directly on Mac mini M1?
so I plug it to Intel Mac to generate it and copy over Mac mini M1.
/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c
<?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"> <dict> <key>DisplayProductName</key> <string>PHL 245E1</string> <key>DisplayProductID</key> <integer>49675</integer> <key>DisplayVendorID</key> <integer>16652</integer> <key>scale-resolutions</key> <array> <data>AAAKAAAABaAAAAABACAAAA==</data> <data>AAAFAAAAAtAAAAABACAAAA==</data> <data>AAAPAAAACHAAAAABACAAAA==</data> <data>AAAHgAAABDgAAAABACAAAA==</data> <data>AAAMgAAABwgAAAABACAAAA==</data> <data>AAAGQAAAA4QAAAABACAAAA==</data> <data>AAAKAgAABaAAAAABACAAAA==</data> <data>AAAKrAAABgAAAAABACAAAA==</data> <data>AAAFVgAAAwAAAAABACAAAA==</data> </array> </dict> </plist>
The plist looks like what RDM 2.4 generates without manually duplicating resolutions, which is necessary. To get 1280x720 HiDPI, for example, you need to specify 2560x1440 (non-HiDPI) and 1280x720 HiDPI. RDM 2.5 does it automatically, so that each HiDPI resolution gets its counterpart in the plist.
Thank you, I wasn't aware that I can generate plist file directly from RDM. Btw I did it and here is the plist file /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c
:<?xml version="1.0" encoding="UTF-8"?>
<?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">
<dict>
<key>DisplayProductName</key>
<string>SM</string>
<key>scale-resolutions</key>
<array>
<data>
AAAPAAAACHA=
</data>
<data>
AAAPAAAACHAAAAALAKAAAA==
</data>
</array>
<key>target-default-ppmm</key>
<real>10.01</real>
</dict>
</plist>
I want only 1920x1080 hidpi so I generate only that resolution. However RDM shows different resolutions. Is there anything wrong here? I tried to restart, check/uncheck those Unknown 1, Unknown 2, Unknown 3 options in RDM though.
@usr-sse2 Did you see my reply with my config file? Do you have any thoughts as to why I'm not seeing any HiDPI options?
Hi everyone, just wanted to also add that I'm experiencing this same issue with my MacBook Air M1 with using a DisplayLink Adapter with a 4K monitor. No lightening icon (HiDPI) for the resolution I want, which is 2560x1440. I'm getting the same exact results as @phipz has posted earlier.
I've gone back and forth with Apple support acsupportcase@apple.com
for a couple of weeks and they've escalated me up the chain from Support to Senior Engineer to guys-you-dont-talk-to-directly-but-your-senior-engieer-talks-to-for-you and what I got back is that the OS-level support for Apple Thunderbolt Displays lacks HiDPI (it sounded like you can't just hack the plist file to do what you want).
The same probably applies to other displays mentioned here.
SwitchResX, which is a paid alternative to RDM, also supports these on Catalina on a Intel Mac but doesn't support them on Big Sur on an M1.
Since everyone here has a new computer that still has the complementary Apple support, I'd say give them a call and let them escalate it for you. I imagine that if enough people make noise about this, it'll get patched, or added to macOS 12.
SwitchResX, which is a paid alternative to RDM, also supports these on Catalina on a Intel Mac but doesn't support them on Big Sur on an M1.
I contacted the developer behind SwitchResX and he explained to me that Apple with the M1 chip applies the following constraints:
In other words, if you are like me and have a 1440p screen you are basically screwed, since 1080p HiDPI = 4k resolution, which is well above the 1440p native resolution of the screen.
If you have an external 4k screen you should have ways to tweak the scaling to your needs.
This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.
I contacted the developer behind SwitchResX and he explained to me that Apple with the M1 chip applies the following constraints:
- You can define a custom scaled resolutions for external displays, though this is limited to resolutions smaller than native (native meaning your external display native resolution)
- HiDPI will not enable on external monitors that aren't 4K
Apple, again? So disappointing.
This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.
What? Linux doesn't handle the scaling 'pretty well': it applies the scaling to all displays, so it's impossible to work on a FullHD or less laptop with an external 4K monitor.
This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.
What? Linux doesn't handle the scaling 'pretty well': it applies the scaling to all displays, so it's impossible to work on a FullHD or less laptop with an external 4K monitor.
Well its not the true anymore. Ubuntu just released their new version 21.04 and it perfectly support hidpi scalling per display. So yeah, now the only OS where scaling sucks is macOS. So congratulations to Apple...
Hi everyone, I've been playing around with RDM and M1 Macbook Air and my external LG 49" external monitor to try and get a decent HiDPI setting. No luck though.
Now, however, my default Macbook Air resolutions have gone missing and only show these two resolutions. I can still add the default resolution via RDM but Is there a way to revert back to default settings?
I'm guessing I should remove the plist files that were added, could anyone help me with the command line I should enter into terminal?
This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.
What? Linux doesn't handle the scaling 'pretty well': it applies the scaling to all displays, so it's impossible to work on a FullHD or less laptop with an external 4K monitor.
Well its not the true anymore. Ubuntu just released their new version 21.04 and it perfectly support hidpi scalling per display. So yeah, now the only OS where scaling sucks is macOS. So congratulations to Apple...
Yeah it took some time for Linux but they do it on their free time and the result is really good. Actually any distribution with gnome runs faster on my Macs than macOS itself.... Fractional scalling or not...
sudo rm -rf /Library/Displays/Contents/Resources/Overrides
sudo reboot now
If you find the way please tell us ...
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
does nothing.ioreg -lw0 | grep -i "IODisplayEDID"
displays nothing.
The one has nothing to do with the other.
sudo defaults read /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled
probably reads 1, am I right ?
The thing with Apple Silicon is that you can't use something like Roseta for drivers, you need to rewrite them so we are in uncharted territory here. This grep thing everybody is using is quite ugly. Here is how you can see your display(s) with the new drivers and a proper syntax:
ioreg -c AppleCLCD2
There is tons of information, what you are looking for is was EDID sent back to the Mac, most of it is in "DisplayAttributes", but there are also constrains such as maximum source width... I am still going through that mess.
There is a way to add any number of HiDPI resolutions on M1 even on sub-4K displays without using a hardware HDMI dummy or an other physical 4K display to mirror the screen from (tested on a 24" QHD display connected to an M1 Mini running Monterey):
https://github.com/waydabber/BetterDummy
Hope this helps.
Confirmed that this works on Big Sur as well. Woohoo!
If you find the way please tell us ...
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
does nothing.ioreg -lw0 | grep -i "IODisplayEDID"
displays nothing.