On 3/22/22 10:41 AM, Grant Edwards wrote:
How does one run "modern" X11 apps remotely?
Xvnc
As in run an Xvnc server as an X11 server / display. Point your
programs at that display / server. Then have a VNC client connect to
said VNC server.
Using ssh -X or ssh -Y works fine for older applications, but not for
things that use "modern" toolkits. Modern tookit designers appear to
have adopted a life mission to maximize the number of client-server
round-trips required for even a trivial event like a keystroke in a
text box.
Yes. The back and forth between the X11 client (program) and server
(display) is quite chatty and latency sensitive.
The thing that running the Xvnc server on the same system as the X11
clients is that the latency between the two that the X11 protocol sees
is effectively as small as possible. Then VNC's Remote Frame Buffer
(RFB) protocol is more forgiving with latency between the VNC server and
the VNC client.
As a result, even with a 5-10Mbps remote connection, it takes several
minutes to enter a string of even a few characters. A mouseclick on
a button can take a minute or two to get processed. Resizing a window
pretty much means it's time for a cuppa.
Been there.
Done that.
Opening chrome and loading a web page can take 10-15 minutes. No
activity at all on the screen, but the network connection to the
remote machine is saturated at 5Mbps for minutes at a time. WTF?
You also want to minimize spurious / superfluous updates that aren't
actually /needed/. E.g. things fading in / out / animations.
I do not want a "remote desktop". I just want to run a single
application on a remote machine and have its window show up locally.
You can adjust the size of the Xvnc's display so that it's the size of
just the application in question. You also don't need the full desktop
to display on that screen.
Back in the day, I used to run X11 apps remotely through dial-up
connections, and most of them were a little sluggish but still
actually usable...
The X11 protocol has changed a lot over the years. Older versions of
X11 are less chatty than newer versions of X11.
Reducing color depth also helps reduce the amount of data that needs to
be exchanged.
X11 transparent network support was its killer feature,
I completely agree. Especially when you start running different
programs on different systems / users / contexts.
but for all practical purpopses, that feature seems to have been
killed.
I don't think that's true.
I run programs like this on the daily. E.g. Lotus Notes 9.x running on
an old CentOS 6.x VM (last supported version) displaying on contemporary
Gentoo on my workstation. The latency is noticeable if you know what to
look for. But the latency is also quite tolerable.
I find web browsing to be considerably slower than my Notes client which
I use interactively on the daily, if not hourly.
--
Grant. . . .
unix || die