The good news: You don't really need one.
Bumping the font configuration fixes 80% of the scenarios, and the rest I tweak on a case-by-case basis. The good standards-conforming apps (e.g. modern terminals, browsers, etc) automatically multiply the font sizes by your screen DPI. Most desktop managers have a scale sliders for the GUI size, if you're into that. Some stragglers include Steam which recently added support for a 2x size multiplier (it's something, but not the best).
You kinda get exposed to how the sausage is made, but the sausage still tastes great.
Linux desktop is better than it ever was, but the road to perfection is long and eternal.
And the speed of fixing HiDPI on Linux has actually slowed down.
Frnakly, and I am a hard core Linux OSS fan - come back in two years and check again.
The Linux desktop IS dead.
Like the previous poster, I stick to 1920x1080 on my 14-inch class Thinkpad. In my office I have dual 28-inch 4K monitors. These have identical dot pitch to my Thinkpad, so each monitor is like having a 2x2 array of my Thinkpad screens. When I made sure the monitors were set with the correct DPI, everything worked exactly as I would expect. Whatever rendered as one pixel on my laptop would also be one pixel on my workstation, and I just had 8 times more real estate on my dual monitor desktop. But, I sit further from the monitors than I do my laptop screen while also using them for much longer stretches of time. So, I adjusted the workstation to pretend it had higher DPI so that things would render a little bigger.
It's been a few years, but I think I may have had to separately adjust Firefox because it has some of its own weird assumptions about fonts and DPI that I assume come from their renderer straddling several different platforms. I also had to adjust emacs and xterm to change from my decades old fixed font preferences to start using scalable fonts.
Out of curiosity, what is a non-broken behavior supposed to be if the screens are combined? Do people expect the low-dpi screen to be a blurry version of whatever would appear on the high-dpi screen, or do they expect it to act like a magnifier, perhaps with pan/zoom controls?
Those days are gone. No matter how hard you try - either you are simply not runing on current hardware, have very modest expectations or close your eyes to realize that the Linux desktop in this regard is at least two years behind, minimum!
For reference, I have been using Linux continuously on all sorts of hardware since 1994. What I lack is any practical experience using modern Windows or Mac OS, so I have no idea what implicit expectations you may be bringing from those. The last time I ran Windows directly on hardware was before Windows 95 was released, and similarly my only real Mac experience was on monochrome classic Macs before OS X existed.
Over the years, I have used just about every sort of display hardware with Linux, ranging from serial terminals, Hercules monochrome graphics, 800x600 through 1600x1200 CRTs, the first wave of DVI-based LCDs, various HDTVs, the first DLP projectors, and my current dual 4K monitors. I was also involved in the early testing and deployment of 2D and 3D accelerators on Linux, as well as things like clusters driving arrays of projectors. We even had one of those IBM "Big Bertha" displays in our lab at one point, which was one of the first 300 DPI LCD monitors available. Just about the only thing I haven't used with Linux is head-mounted displays nor stereo glasses. My last involvement with VR was 20 years ago when SGI Onyx-based CAVE systems were prevalent in academia, combining head-tracking, active shutters, and multiple wall projectors.
But, to be honest, I have no use case to combine different DPI monitors into a single graphical screen or desktop. If I connect a laptop to a projector or display panel for presentations, I tend to just want to duplicate the presentation view on the internal screen. Otherwise, I use the laptop to be mobile and I use workstations with their dedicated displays.
And frankly, X is a dead end.
Were you using Nvidia? On AMD and Intel it’s been working amazing for me so far, never had any issue. Nvidia is known for disobeying the standards.
So I'm not sure what you mean by "HiDPI on Linux is pretty much non existent." Maybe it gets worse if you need fractional scaling or displays with different scaling ratios, but these seem to things all platforms are struggling with. Microsoft only made built-in apps like File Explorer per-monitor-DPI aware in Windows 10 1703 (released a year ago), and macOS doesn't attempt fractional scaling (eg. 1.5x, 2.5x, etc.) at all.
That sounds like a draconian restriction if you are coming from Windows 10, but OP is switching from macOS. Macs have traditionally used either 100% or 200% as well (except for the latest-gen MBP).
However if you can't use wayland you will have a problem when you need the following:
Multiple monitors with different screen resultions. Lets say your laptop has 4k and you use two external monitors with 1080p than it gets tricky with older wayland or x.org. However on later stable/edge channels most things are probably better than when I tested this and I even have a colleague which has a 13" xps with ubuntu which works pretty will with its docking station.
BTW I think 2560x1440 may not be high enough to technically be considered HiDPI?
108 PPI for the former is not HiDPI, which is my point.
I'm quite aware of pixel density, but thanks for the Wikipedia definition.
1. Use the laptop screen only. This is easy. Just change the DPI value in my ~/.Xprofile and everything is solved.
2. Use external monitors only. Just use the default DPI value.
3. Use laptop screen in combination with external monitors. This doesn't occur hat often. But when I have to do this, there are also some ways to make it work. You can refer to https://wiki.archlinux.org/index.php/HiDPI for some reference.
- The first way is to increase the DPI in ~/.Xprofile and actually scale up the external monitor instead. I don't like this method since the external monitor just looks blurry for some reason.
- Or you can keep the DPI and downscale your internal monitor.
- Or, and this is what I do currently, use apps that support manually setting DPI in their settings, e.g. Firefox and Thunderbird, on the laptop display. You can also manually change font sizes of apps that you're going to use on the laptop display. This is a bit inconvenient but the display result will look totally natural.
The main issue is that scaling can't really be done on a per-display basis.