Remote Desktop on Linux. Proven Solutions for Wayland Users.

Julia Avatar

·

·

remote desktop on linux

It turns out, Wayland’s lack of network transparency has made remote desktop on Linux a bit more complicated, but don’t worry—we have some solid solutions!

How Do We Connect Remotely Now?

Since Wayland doesn’t natively support remote desktops due to its lack of network transparency, we need to turn to third-party tools to make remote connections work. The key player in choosing the right tool is your compositor.

Compositor: The Key Player

Let’s take a step back and explain what a compositor is.

A compositor is essentially the middleman between your applications and your screen. It determines where your windows go, how they look, handles transparency, animations, and even manages multiple monitors. Without a compositor, nothing would show up on your screen.

Wayland is just a protocol—it provides the rules, but developers build their own compositors on top of it. That’s why there are so many different compositors available, each optimized for specific user needs.

For example:

  • GNOME uses Mutter.
  • KDE Plasma uses KWin.
  • Sway and Weston are other popular compositors.

Here is a Wikipedia page listing the most common compositors: https://en.wikipedia.org/wiki/List_of_display_servers

Since remote desktop solutions depend on the compositor running on your system, choosing the right one will determine which third-party app to use for remote access.

To simplify this process, I’ve created a decision tree that walks you through the steps of selecting the right remote desktop tool based on your compositor and operating system.


Step 1: Linux-to-Linux Connections

If you’re connecting from one Linux machine to another, the first question you need to answer is whether you want a full desktop session or just access to individual apps.

Full Desktop Sessions (YES Path)

If you’re aiming for a full desktop session, the solution will depend on the compositor running on the remote machine:

  1. GNOME (Mutter) or KDE (KWin):
    • Both of these compositors work well with VNC and RDP, which will allow you to access the entire desktop environment on the remote machine.
  2. Sway:
    • If you’re using Sway, then WayVNC is your go-to tool for full desktop access. It’s designed specifically to work with Sway.
  3. Hyprland:
    • Hyprland is a bit more experimental. While there isn’t a confirmed solution yet, you can try WayVNC to see if it works for you. Just know it’s not a guaranteed setup.
App-Level Access (NO Path)

If you only need access to individual apps and not the full desktop, here’s what to use:

  1. Hyprland (and other compositors):
    • For app-level access, Waypipe is a great option. It allows you to remotely access graphical applications over SSH, though it’s limited to specific apps, not full desktop environments.
  2. SSH:
    • If you only need terminal access, SSH is always reliable. This will work with any compositor, providing terminal access without a graphical interface.

Note: Waypipe only works for Linux-to-Linux connections. If you’re connecting from macOS or Windows, you’ll need a different solution.


Step 2: Non-Linux to Linux Connections

When connecting from a non-Linux OS (like macOS or Windows), you’ll also need to decide whether you want a full desktop session or just terminal access.

Full Desktop Sessions (YES Path)

For a full desktop session from non-Linux to Linux, here’s what you should use:

  1. GNOME (Mutter) or KDE (KWin):
    • VNC and RDP are your best options. They work cross-platform, allowing remote desktop access from macOS or Windows.
  2. Sway:
    • Just like with Linux-to-Linux connections, WayVNC is the best option for a full remote desktop session on Sway, even when connecting from macOS or Windows.
  3. Hyprland:
    • WayVNC might also work here, but since Hyprland is new and experimental, success isn’t guaranteed.
App-Level Access (NO Path)

If you just need terminal access (without a graphical interface), SSH is the go-to solution. Since Waypipe doesn’t work for non-Linux connections, SSH is your best bet for terminal access from macOS or Windows.


Sunshine/Moonlight Remote Desktop Solution

Another option to consider is Sunshine, which works with the Moonlight client to provide a remote desktop experience. Sunshine/Moonlight provides full desktop access when used as a remote desktop solution. It allows you to remotely control the entire desktop environment of the host machine, rather than just individual apps. Although it’s commonly used for game streaming, it also functions well for remote desktop access. Sunshine supports Linux-to-Linux connections, as well as non-Linux-to-Linux setups, making it a flexible choice for users across platforms, including Windows and macOS.

A key advantage of Sunshine is its ability to leverage NVIDIA cards with NVENC hardware encoding, which can improve performance during remote sessions by offloading the video encoding to your GPU​(GitHub)​(LizardByte Documentation). This can be especially useful if you’re looking for a smooth, responsive remote desktop experience.

Although Sunshine is primarily designed for game streaming, its compatibility with a wide range of devices and operating systems makes it a strong contender for remote desktop access as well​(Level1Techs Forums).


Conclusion: Which Tool Should You Use?

To wrap it up:

  • Full desktop sessions: Use VNC, RDP (and variations of those), or WayVNC depending on your compositor. And then there is Sunshine/Moonlight solution.
  • App-level access: Waypipe works well for Linux-to-Linux connections.
  • SSH: For terminal access only, SSH is always reliable across all systems.

➡️ Make sure to download the decision tree for quick reference next time you set up a remote desktop connection.


If you found this guide helpful, don’t forget to subscribe to my newsletter for more Linux tips and tutorials, and feel free to leave a comment below sharing what remote access tools you’re using and how they’ve worked for you!