I'm testing Ubuntu Bionic, GNOME, elementary OS, KDE, Xfce 4.13 (the GTK3 version, all apps have been ported to GTK3).
All distros support hidpi across frameworks: when I launch Google Chrome/Firefox/etc. (GTK 3), VirtualBox (Qt 5), or Spotify (Electron) some component in the DE detects that my screen is 4K and does the right thing so that the app is scaled at 2x.
With the exception of Xfce. In Xfce, third-party apps don't work well, expecially Qt and Electron apps which are never launched at the correct scaling.
Xfce 4.13 has a "scaling" option that you can use to specify that you want everything scaled to x2. However, even if I do that, Qt and Electron apps do not pick up the setting. I also tried using gsettings to set the "GNOME" setting in addition to Xfce's, to no avail. Qt and Electron apps still look bad, while on GNOME they look great out-of-the-box.
My Question is: how do Ubuntu, elementary and to a certain extent KDE make apps using different frameworks all scale correctly?
Of course, I know how to launch Qt apps at the correct scaling manually, but I'm wondering what makes this process so much easier on distros other than Xfce.
Is there a package that I can install from another distro that will make Xfce behave "correctly", so that if I launch a GTK3, Qt, or Electron app they get scaled correctly? Is it the launcher than passes some variables, or is it a lower-level component?