Edit: rootless in this context means the remote windows appear like local windows; not in a big “desktop” window. It’s nothing to do with the root account. Sorry, I didn’t come up with that confusing term. If anyone can think of a better term let’s use that!

This should be a simple task. I ssh to a remote server. I run a GUI command. It appears on my screen (and isn’t laggy as hell).

Yet I’ve never found a solution that really works well in Linux. Here are some that I’ve tried over the years:

  • Remote X: this is just unusably slow, except maybe over a local network.
  • VNC: almost as slow as remote X and not rootless.
  • NX: IIRC this did perform well but I remember it being a pain to set up and it’s proprietary.
  • Waypipe: I haven’t actually tried this but based on the description it has the right UX. Unfortunately it only works with Wayland native apps and I’m not sure about the performance. Since it’s just forwarding Wayland messages, similar to X forwarding, and not e.g. using a video codec I assume it will have similar performance issues (though maybe not as bad?).

I recently discovered wprs which sounds interesting but I haven’t tried it.

Does anyone know if there is a good solution to this decades-old apparently unsolved problem?

I literally just want to ssh <server> xeyes and have xeyes (or whatever) appear on my screen, rootless, without lag, without complicated setup. Is that too much to ask?

  • BananaTrifleViolin@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    2 days ago

    The reality is what youre asking for is very complex - you’re asking for lagless streaming for a desktop. That is running a GUI on remote hardware, and then streaming that video to another computer with low latency so you have no perception of lag in moving the mouseor interaction, and continuous streaming of desktop updates.

    There are lots of factors at play that can make it a poor experience.

    You can have what you want if:

    • The server you SSH in to has the resources to run X well
    • The server you SSH in to has the hardware to be able to then convert that to video (with some tricks) and stream it
    • The internet connection between you and the remote server is stable and high enough bandwidth to stream the desktop
    • the internet connection between you and the remote desktop is low latency.

    Its very hard to achieve all those things even when youre creating machines that are dedicated for remote desktop streaming. I have done that in my work with Windows devices and to get good quality streaming we needed dedicated hardware, dedicated software and high quality internet. And even then some of our users had bad experiences.

    Most remote servers are definitely not set up to provide what you want. Dedicated software for the task will help as there are lits of tricks that they apply to make a streaming desktop appear latency free versus simpler solutions that just stream the actual desktop.

    VNC is not a good solution - its basically just taking screenshots and streaming those to you. It works with fast devices on a local network, but is very limited in your use.

    If you really want to solve this look at software optimised for low latency uses such as gaming. For example Moonlight/Sunshine are for game streaming but work with desktops. They are designed to be low latency high quality. But to achieve that you need the video hardware on your server, and the good low latency stable internet connection.

    Real world high quality desktop streaming also needs good graphics hardware and optimised tools. It can be achieved with open source software but you need the hardware to to do the heavy lifting.

    • FizzyOrangeOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      2 days ago

      I’m just asking for the same level of lag as I get from basic modern remote desktop solutions like Rustdesk, VMware VDI, Chrome, etc. As far as I know these all just capture the desktop, feed it into a standard low latency video codec and bob’s your uncle. They achieve very good latency.

      I currently use VMware VDI and it runs fine. All of these complex factors you’ve mentioned are not an issue at all. The only complexity is the actual integration with X/Wayland.

        • FizzyOrangeOP
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          You have to launch an app, log in twice and then you get an annoying VNC-style remote desktop, not native windows. Also it doesn’t run at all on Wayland. Apart from that it works pretty well - fast, and stuff like copy/paste works. I would just like something that is as convenient as remote X, but not dog slow.

    • umbrella@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      Its very hard to achieve all those things even when youre creating machines that are dedicated for remote desktop streaming.

      to be fair, i can do this quite easily with a standard fiber connection and a somewhat old laptop-grade cpu/igpu.

      if OP is self-hosting, their hardware is probably capable, it would be that hard if hes paying for a VPS where gpu acceleration is not a thing unless you pay for it.