Skip to content

Remote Desktop

This guide covers the remote desktop options available on your Hyprland system.

  • Server: WayVNC (Wayland-native VNC server)
  • Port: 5900
  • Clients: Any VNC client (RealVNC, TightVNC, etc.)
  • Performance: Good for general use
  • Audio: Not supported
  • Server: xrdp
  • Port: 3389
  • Clients: Windows Remote Desktop Connection
  • Performance: Excellent, includes audio
  • Limitations: May have some Wayland quirks

3. Moonlight / Vibeshine (best performance, gaming)

Section titled “3. Moonlight / Vibeshine (best performance, gaming)”
  • Server: Vibeshine — Nonary’s fork of Sunshine, packaged as pkgs/vibeshine (still enabled via the NixOS services.sunshine option for compatibility; see modules/nixos/remote-desktop.nix)
  • Protocol: Moonlight / NVIDIA GameStream (hardware-encoded H.264/HEVC/AV1 via NVENC)
  • Ports: TCP 47984/47989/47990/48010, UDP 47998–48000
  • Web UI: http://<your-ip>:47989 (pairing / configuration)
  • Clients: Moonlight (desktop, mobile, web)
  • Performance: Lowest latency, includes audio — best for gaming and full-desktop use
  • Setup / troubleshooting: see Troubleshooting and Moonlight / Vibeshine Troubleshooting
  1. Connect from Windows:

    • Install RealVNC Viewer or TightVNC
    • Connect to: <your-ip>:5900
    • Use your system password
  2. Connect from macOS:

    • Open Screen Sharing (built-in)
    • Connect to: vnc://<your-ip>:5900
    • Use your system password
  3. Connect from Linux:

    Terminal window
    vncviewer <your-ip>:5900
  1. From Windows:

    • Open Remote Desktop Connection
    • Connect to: <your-ip>
    • Use your system credentials
  2. From Linux:

    Terminal window
    xfreerdp /v:<your-ip> /u:luxus
  • VNC Port: 5900
  • RDP Port: 3389
  • Username: luxus
  • Password: Your system password
  • Virtual Display: 1920x1080@60Hz

To change the VNC resolution, edit the service:

services.wayvnc-virtual-output.serviceConfig.ExecStart =
"${pkgs.wlr-output-to-1}/bin/wlr-output-to-1 --mode 2560x1440@60 --output VNC-1";
Terminal window
## Stop VNC
systemctl --user stop wayvnc
## Start VNC manually
systemctl --user start wayvnc
## Check status
systemctl --user status wayvnc

Ports are automatically opened, but you can verify:

Terminal window
sudo ufw status

For gaming, use Moonlight + Vibeshine (already enabled on lea — see method 3 above):

  1. Install Moonlight on the client
  2. Add the host (pair via http://<your-ip>:47989)
  3. Hardware-encoded (NVENC) streaming with much lower latency than VNC/RDP

Parsec is an alternative if you prefer an account-based hosted service.

  • Both VNC and RDP are accessible from your local network
  • For internet access, consider VPN or SSH tunneling
  • Always use strong passwords
  • Consider fail2ban for brute force protection
Terminal window
## Check if WayVNC is running
systemctl --user status wayvnc
## Check logs
journalctl --user -u wayvnc
## Restart services
systemctl --user restart wayvnc-virtual-output wayvnc
Terminal window
## Check xrdp status
sudo systemctl status xrdp
## Check logs
sudo journalctl -u xrdp
## Restart xrdp
sudo systemctl restart xrdp

If the virtual display doesn’t work:

  1. Ensure Hyprland is running
  2. Check wlr-randr output
  3. Verify WayVNC can find the virtual output
  • VNC: AVNC, RealVNC Viewer
  • RDP: Microsoft Remote Desktop
  • VNC: VNC Viewer by RealVNC
  • RDP: Microsoft Remote Desktop

Both VNC and RDP services start automatically when:

  • System boots
  • Hyprland session begins
  • User logs in

No manual configuration needed!