This article is more than 1 year old
Why your external monitor looks awful on Arm-based Macs, the open source fix – and the guy who wrote it
Q&A with the developer of BetterDummy: from macOS secrets to his motivations
Interview Folks who use Apple Silicon-powered Macs with some third-party monitors are disappointed with the results: text and icons can appear too tiny or blurry, or the available resolutions are lower than what the displays are capable of.
It took an open source programmer working in his spare time to come up with a workaround that doesn't involve purchasing a hardware dongle to fix what is a macOS limitation.
István Tóth lives in Hungary, and called his fix BetterDummy. It works by creating a virtual display in software and then mirroring that virtual display to the real one, to coax macOS into playing ball. The latest version, 1.0.12, was released just a few days ago, and the code is free and MIT licensed.
One issue arises when you plug certain sub-4K third-party monitors into your M1 Mac. This includes QHD monitors with a resolution of 2560x1440. The operating system either displays the desktop at the native resolution of the monitor – in which case text and user-interface widgets appear too small – or offers an unusable blurry magnified version.
The blurring is because macOS isn't enabling its Retina-branded high-pixel-density mode called HiDPI, which would result in crisp font and user-interface rendering. For instance, if you have an M1 Mac connected to an external monitor with a native resolution of 2560x1440, and you try to run it at 1280x720 to make it easier to read, even though you satisfy the pixel density requirements of HiDPI, you still get a scaled blurry mess and not a crisp HiDPI view – because macOS won't enable its Retina mode.
On top of this, M1 Macs may offer resolutions lower than what an external third-party monitor is actually capable of, with no way for users to add more options or fine-tune them. For example, you might find that your 5120x2160 ultra-wide monitor is only offered a maximum of 3440x1440.
There are tonnes of complaints about this from users on support boards and forums; even a petition for people to sign to get Cupertino's attention. We asked Apple if it planned to address these shortcomings in macOS, and its spokespeople were not available for comment.
Tóth reckons the reason for much of this is that the Arm-based Macs use graphics driver code based on iOS and iPad OS, which do not need to support that many displays – and certainly not any they can't understand. Macs with x86 processors, meanwhile, can enable HiDPI on sub-4K displays as well as allow the user to configure the available resolutions.
Enter BetterDummy – an app that tricks macOS into thinking an actual 4K display is connected so that HiDPI rendering is enabled and works. It also allows people to create and tune their own resolutions if they're not available from the operating system.
Nobody can explain it better than the guy behind the code. So we decided to chat with him so he can tell us more about his project, where he thinks Apple could improve, and why Intel-based Macs are more flexible when it comes to supporting non-Apple monitors, among other things.
El Reg: So, what are the problems?
Tóth: Apple is probably one of the biggest innovators, always willing to push the envelope and design things better. And for these state-of-the-art innovative products, customers are willing to pay a higher price. Two years ago, Apple delivered the Pro Display XDR, the ultimate monitor for creative professionals, with an impressive 6K resolution and 1600 nits of brightness in a widescreen format.
Yet, few people outside the audiovisual profession can justify five grand for a monitor – one that doesn't even come with a stand for that price. Hilarious reviews were written about it on Amazon, and even competitors like MSI took their turn at mocking the steep price of Apple's best monitor.
It's no surprise that many buyers of high-end Macs end up buying a non-Apple monitor instead. And that's when their troubles begin.
It all comes down to font and widget scaling, and resolution independence. What Apple calls HiDPI mode is just the OS recognizing the plugged display operates at a super-high pixel count and scaling the desktop and user interface accordingly. It also helps if you can fine-tune custom resolutions to match your display panel's native resolution so that the image isn't washed up by hardware rescaling.
Well, bad news: none of the above seems to be happening in M1-based Macs. And worse, previous workarounds for custom resolutions that used to work in Intel-based machines fail to work with the M1.
Can you please explain the problem with these 5K2K and QHD monitors working perfectly fine on PCs and looking bad on M1 Macs – so much so some users end up returning them?
Macs can handle most displays at their native resolution just fine, including QHD, wide, ultra-wide, and double-wide displays. The problem is that on most displays, resolution selection is quite limited. This affects even Apple's XDR Display.
On some displays, like those sub-4K displays with 1080p or 1440p resolutions, Apple Silicon Macs do not allow high-resolution display modes, namely HiDPI, and does not do scaling well. This results in a low-res desktop experience locking the user with too small or too big fonts and GUI, and there is no way to change that. This is OK for 1080p displays, but in case of a 24" 1440p QHD display, for example, the resulting fonts are just too small and the user cannot lower the resolution while retaining clarity because of the disabled HiDPI support.
And what about M1 Macs not supporting the maximum resolution of certain monitors?
There are some displays that have an erroneous EDID table, which describes the resolutions accepted by the display as well as the optimal resolution. This is usually not a big problem, as virtually all desktop operating systems allow the user to choose a resolution of their liking. MacOS was always more restrictive in this regard, but at least in the past, Intel Macs gave pro users the means to override the faulty EDID table on the software side or add custom resolutions.
This feature is completely missing for M1 Macs; there is no accessible way to add custom resolutions and display timings, which is unprecedented in the desktop OS space. This is mainly because the Apple Silicon graphics drivers are derived from iOS and iPad OS, which is on one hand great, but on the other hand rather limiting – these devices do not really need to support all kinds of various third-party displays.
That certainly seems fixable?
As this is mostly a macOS issue, Apple could fix this problem. They need to give the pro users the ability to define custom resolutions and display timings; enable HiDPI rendering for all displays; give more granular options for scaled resolutions; and allow higher scaled resolutions.
Why is BetterDummy the right solution to the problem?
Ultra-wide display users face several challenges with M1 Macs in terms of resolution. Early M1 macOS versions did not properly support some of the aspect ratios and users had no way to define custom resolutions to fix this as with Intel Macs. Later macOS versions, as far as I know, added support for these aspect ratios. Custom resolution support is still missing.
Selecting a new dummy monitor to create in BetterDummy (Source)
But even with this, the lack of HiDPI for the most common 1080p or 1440p wide displays is a problem. Even for 5K2K displays the issue is that even though HiDPI is supported, the resolution options are limited, the desktop and fonts look unnaturally magnified, and the user has no option to scale the display in a way that feels right. BetterDummy attempts to solve these issues.
And for all monitors?
BetterDummy solves the problem of the lack of HiDPI resolution – mostly beneficial for 1440p displays – or the too-restrictive scaled resolution problem – beneficial for all displays – as well as solving some other issues, such as customizable resolutions for headless Macs used as servers via Screen Sharing or Remote Management, etc.
For 5K2K displays, which translate to 2.5K1K when using HiDPI, the benefit is that the user can create for example a 8K3K virtual screen, use HiDPI mode, and scale it to the native display resolution. Tthis will give the user a bigger desktop (approximately 4K1.5K) while still retaining the clarity of the display.