Replies: 1 comment
-
|
This should not depend on Pro availability, so I am not exactly sure what happened. But it is surprising that such a resolution worked. I recommend doing a low level mode switch. While the app is running, enter this in Terminal:
Then look for the preferred timing+color mode combo and copy its long mode id number and enter the following:
where This operation should hard-switch to the appropriate mode, but the framebuffer will be left in its last canonical display mode size (make sure you select one that is larger than the desired timing's native resolution), so whatever content you want to show on the screen will have to be cropped. But this is usually fine for special displays or led strips as you should be able to control the content placement properly by other means. Let me know if this works. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Environment
640×200 scaling:on(HiDPI, framebuffer 1280×400, 1:1 pixel mapping)Problem
The display was working perfectly at
640×200 scaling:on(HiDPI) with BetterDisplayPro. After the Pro license expired and was later reactivated, the HiDPI mode no
longer applies. The display is stuck at
600×800 scaling:off.What I've verified
Using Swift
CGDisplayCopyAllDisplayModeswithkCGDisplayShowDuplicateLowResolutionModes:640×200 px=1280×400 HiDPIexists but has flags=0x2000001 (valid +mirrorable, no safe bit)
540×960 px=1080×1920 HiDPIhas flags=0x3 (valid + safe) — this one switchesfine via BetterDisplay GUI
600×800has usable=TrueThe display's EDID declares native resolution as 1920×1080, causing macOS to
classify the 400×1280 mode as
usable=False.What I've tried
scale-resolutions— modes appear in list but remainusable=False
displayplacerCLI — exits 0 but no actual mode changeCGDisplaySetDisplayMode— err=1001 (kCGErrorRangeCheck)CGSConfigureDisplayMode— ConfigureDisplayMode succeeds,CGCompleteDisplayConfigurationreturns err=1001CGDisplayCapture+ SetDisplayMode — still err=1001letterboxing
flexible scaling" — no effect after reboot
brew uninstall,defaults delete, removedoverride plists, fresh
brew install, re-entered Pro license, reconfigured nativepanel resolution + flexible scaling) — still no change after reboot
Conclusion
It appears that Apple Silicon DCP blocks mode switching for any mode without the
safe bit (flags lacking 0x2), and BetterDisplay Pro's usable flag modification is
not taking effect even with an active license after reinstall.
Before the license expiry, this exact setup worked — BetterDisplay was able to make
640×200 HiDPIusable.Question
Is there a known issue with Pro license reactivation not restoring the usable flag
override? Is there a specific setting or reset procedure I'm missing to re-enable
HiDPI for non-standard resolution displays?
Any guidance would be appreciated. Thank you.
Beta Was this translation helpful? Give feedback.
All reactions