A few sparse notes.
First of all, HiDPI isn't a matter of (just) screen resolution (as in number of pixels), but rather pixel density (DPI: dops per inch). So 4K is or is not a a HiDPI configuration depending on how large the display is (and how fare you are from it, actually, but that gets even hairier): a 15" or 17" display would definitely be, but a 22" or higher might not. Out of curiosity, could you find the physical DPI of your display? Is it being reported correctly to X11? (if you are using X).
Secondly, concerning the “optimal” UI scaling in HiDPI configurations, there's two issues at play: one is that what is “optimal” depends at least as much on user preference and device properties. The other big issues is that anything but integer scaling is bound to look suboptimal even under ideal conditions, so even if your display DPI is, say 1.7 times the standard DPI, actually going for a 1.7 scaling would look butt ugly, fuzzy and blurry in all the wrong places (this is less of an issue on DPIs larger than 2, but still, integer scaling will always look crisper).
Finally, GNOME (and GTK in general) has recently started being uncooperative on the DPI front. This makes things harder both for GNOME apps outside of GNOME, and for non-GNOME apps inside it.
I would honestly recommend you try out KDE as an alternative to GNOME. In my experience, it has had better support for HiDPI for longer, and it tends to play much more nicely with applications regardless of their toolkit. For applications that don't support HiDPI in any way (e.g. Java stuff) you can use xpra as a workaround: it's an X11 multiplexer, and on recent versions it can do automatic scaling.
Now, before any of you say "But, /u/maxmylyn, you haven't commented in 4 years!" - this isn't my main account. I decided long ago that maybe it's not exactly the best idea to be commenting on Reddit with a handle that can be linked to personal accounts elsewhere on the internets.
I also messaged the mods beforehand who asked me to make this a text post and to explain everything before linking the GoFundMe. If any of you aren't sure that I am who I say I am...well..Here's a Trac task created by my Trac user.
While I'm here, I guess AMAA?
Well, there's this, and a neat GUI application based on it. It's not as easy as simply dragging it over, but perhaps it might work for what you want to do.
I think i already suggested this somewhere on reddit, but for me xpra http://xpra.org/ works fine. I'm not transferring whole desktop just the applications though. It's capable of using some local/remote acceleration for performance.
I'm on the same boat as you, remote desktop software for Linux is in a bad shape for some time now, at least for wan access. (for LAN, vnc does the job of course)
There is the the Xpra project, last time I tried it, it kept crashing for me. You might have better luck. Other than that, I'd say stick with NX 3.5 or use xrdp which also works well. I don't how secure it is, so you might not want to run it on port 80, I think tunneling it over ssh will be better. I use them both, some of my users prefer NX, some xrdp. each has clear disadvantages, together they make an almost acceptable solution.
I'd love if someone will come with better solutions advice...
>However your host windowing session is going to have to end in order to give up the GPU it's currently using (
If you use something like xpra you can propaply restart X after the VM shuts down without loosing the state of Xorg.
Yes, something like that is needed. Also you would have to send xauth keys and import them on the other side. I was hoping for already existing solution. It make me google once more if there are any solutions, and I found xpra (http://xpra.org/). It is said to be "screen for X11". Basically you run X server on remote host and connect to it from various clients. Like screen. I'll give it a go.
So I know only at a high level. You'd want to implement it as a window manager/compositor. That way you get the Window textures. Then you can render the windows as you see fit (not just constrained to a 'desktop' if you so chose).
If I felt so ambitious, I'd look at: https://github.com/chjj/compton (Probably the simplest codebase to study to understand how to be a compositor) http://xpra.org/ (uses compositing to intercept windows and acts as a window manager to ultimately stream the windows to a client system. Probably a much more comprehensive use case of capturing windows and window management behaviors in preparation to do something interesting (in their case rearranged windows for arbitrary client desktop geometries, I think it translates closely to getting the windows for rendering into some interesting environment. http://hwahba.com/ibex/ (closest existing thing to the linux version of VR desktop)
I actually caved and put windows on my beefy GPU setup so I haven't really done much myself with it, sadly.