• [gentoo-user] How to run X11 apps remotely?

    From Grant Edwards@21:1/5 to All on Tue Mar 22 17:50:01 2022
    How does one run "modern" X11 apps remotely?

    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.

    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.

    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?

    Something like LibreOffice is completely unusable.

    Even something "lightweight" like atril is so slow it's barely usable.

    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.

    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...

    X11 transparent network support was its killer feature, but for all
    practical purpopses, that feature seems to have been killed.

    --
    Grant

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?QmrDtnJuIEdvaGxh?=@21:1/5 to All on Tue Mar 22 18:30:01 2022
    I think what happened is that a lot of rendering was moved to the client
    side, in particular font rendering.

    There may be ways to disable toolkit features that can lighten the load a
    bit.

    <div dir="ltr"><div>I think what happened is that a lot of rendering was moved to the client side, in particular font rendering. <br></div><div><br></div><div>There may be ways to disable toolkit features that can lighten the load a bit.<br></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Taylor@21:1/5 to Grant Taylor on Tue Mar 22 20:40:01 2022
    Some clarifications.

    On 3/22/22 1:28 PM, Grant Taylor wrote:
    Xvnc

    I have looked at NoMachine (a.k.a. NX) in the past. But I've not tried
    it myself because my work client machine has a VNC client built in and
    doesn't have an NX client.

    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.

    There's another option in the VNC / NX arena, but the name escapes me at
    the moment.

    There is also the possibility of RDP and / or ICA (whatever name old
    Citrix technology is going by these days).

    If you're into retro computing, PC Anywhere / Timbuktu are options.

    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.

    To be crystal clear, my Gentoo physical machine SSHs to my CentOS
    virtual machine with X11 forwarding such that the Notes client shows up
    on my Gentoo system. It's about as stock X11 as you can get. -- I
    have contemplated messing with xhost / xauth (cookies) to avoid the
    encryption / decryption overhead. But I found that I still needed
    remote command execution to set the DISPLAY and launch the Notes client.
    SSH makes this latter part trivial while also providing the former
    part. This is across a switched 1 Gbps LAN in the same subnet.

    This works well enough that I'm considering evaluating running more
    programs on discrete systems / VMs / containers with X11 networking.



    --
    Grant. . . .
    unix || die

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From James Cloos@21:1/5 to All on Tue Mar 22 21:00:02 2022
    unfortunately running the single application over app-emulation/spice
    might be as good as it gets.

    even over a local 1gig lan link those bugs you described are annoying.

    -JimC
    --
    James Cloos <cloos@jhcloos.com> OpenPGP: 0x997A9F17ED7DAEA6

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Taylor@21:1/5 to Grant Edwards on Tue Mar 22 20:30:02 2022
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)