- Published on
Remote Desktop Setup in 2025
I shifted to a fully remote job and had been looking for an ideal remote work setup that I can use from anywhere in the world. Laptops are great for portability, but most high-performance laptops come with a steep price tag. So I decided to set up a PC and settled on Fedora with Sway window manager after distro hopping 🦘 for some time.
One of the few great things about Windows is that it provides a seamless GUI remote desktop, while Linux systems had always been lacking the GUI-based remote desktop. I recently came across Sunshine (server) and Moonlight (client) both open-source softwares, and it has absolutely changed my experience with remote desktop on Linux!
Sunshine captures the video and audio of the device, encodes it, and sends it across to the client device via UDP using a game streaming protocol. While these softwares were primarily built for live game streaming on remote machines, these also work exceptionally well for the remote desktop use case with minimal lag.
Moonlight and Sunshine have interesting origins — built from reverse-engineering Nvidia's protocol used in GameStream, which has been discontinued. If you are interested in digging up more details on how it works under the hood, an unofficial explanation of the underlying protocol is documented here. You can always look up the open-source implementation of Moonlight and Sunshine.
Both the open-source softwares work across many possible combinations of OS & hardware, allowing you to smoothly stream/access one system from another. Based on my testing of the Fedora server + Windows client, the performance has been phenomenally good when compared with the traditional way of RDP access. Moreover, there are fine controls available to optimize for a stable live stream based on quality of your internet connection. Really great to see how good remote desktop experience has become on Linux!
Additional tip: Consider using a dummy HDMI plug for a headless remote desktop.