> I think it's on the verge of being impossible to be honest.
You sure about that? QT seems to handle per-monitor scaling fine (at least with 'kwin'), so it doesn't seem to be at all a problem with xorg. Read on:
QT has environment variables that let you set per-monitor scaling... even fractional scaling. See: <https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt>
On my system, I have two monitors, DisplayPort-0 (a 32" 4k) and DisplayPort-1 (a 24" 1200p). I also have Dolphin installed, and it has a "Desktop" item in its sidebar that has a "minimal" square-cornered icon. When I run:
QT_SCREEN_SCALE_FACTORS='DisplayPort-0=2.73;DisplayPort-1=1' dolphin &
Dolphin produces a "Desktop" square on DP-0 that's 44x44 pixels, whereas QT_SCREEN_SCALE_FACTORS='DisplayPort-0=2.60;DisplayPort-1=1' dolphin &
Dolphin produces a "Desktop" square on DP-0 that's 42x43. (There's some dithering/blending/whatever going on that's obvious when you zoom way in.)And, when I move Dolphin to the DisplayPort-1 monitor, once more than half of the window is on DP-1, the icons shrink to 16x16, and scale back up when I move back to DP-0.
Now, for some reason neither 'QT_ENABLE_HIGHDPI_SCALING' nor 'QT_AUTO_SCREEN_SCALE_FACTOR' seem to do anything at all. Given that xrandr knows the physical size of each monitor, and how many pixels each is configured to output, my expectation is that they simply never wired this up when running on xorg. I wonder if they're accepting patches.
EDIT: I also wonder if the reason they never wired this up when running with xorg is because nVidia's scaling performance is absolute dogshit, and they (somewhat reasonably) really want to have this autoscaling stuff on by default.