sway / wlroots (Wayland) RDP

wlroots compositors have no built-in RDP server. lamco-rdp-server captures the screen with wlroots' wlr-screencopy and injects input with the wlroots virtual input protocols, so sway, river, labwc, and Wayfire get standard RDP with the same binary that runs on GNOME and KDE.

Install

Native (recommended on wlroots) or Flatpak (CE). Screencast uses xdg-desktop-portal-wlr plus PipeWire; input uses the wlroots virtual-input protocols directly. Verify:

lamco-rdp-server --show-capabilities

Minimal config

~/.config/lamco-rdp-server/config.toml:

[server]
# Dual-stack by default; use "0.0.0.0:3389" only to force IPv4-only.
listen_addr = "[::]:3389"

[security]
tls = true

[video]
codec = "auto"

Start it:

lamco-rdp-server

Connect

Dual-stack by default (IPv4 + IPv6). Use a hostname or explicit address (IPv6 in brackets):

  • Windows: mstsc.exehost:3389 (or [2001:db8::10]:3389).
  • Linux: Remmina, or xfreerdp /v:host:3389 /u:USER.

sway / wlroots specifics (current in 1.4.4)

  • Capture: wlr-screencopy (wlr-direct), honoring the compositor's wl_shm buffer format.
  • Input: the wlroots virtual keyboard/pointer protocols (zwp_virtual_keyboard_v1, zwlr_virtual_pointer_v1) rather than libei.
  • Clipboard: wlr-data-control / ext-data-control.
  • Verified on sway 1.11 and 1.12: native connect, EGFX video, input, and clipboard all pass (wlr-screencopy benchmarked cleanly at approximately 25 fps).

Troubleshooting

SymptomCauseFix
Colors are skewed (blue renders as brown)The bridge assumed BGRx, but sway delivers Xbgr8888 (RGBx byte order) via wlr-screencopyFixed in 1.4.4 (honors the wl_shm capture format and swaps R/B)
Connects, then black screenNo H.264 encoder, or EGFX not negotiated--show-capabilities; install Cisco OpenH264 for software H.264 (see Video Encoding), or use a GPU (VA-API)
Input does nothingVirtual-input protocols unavailable in the running compositorConfirm the compositor advertises zwlr_virtual_pointer_v1 / zwp_virtual_keyboard_v1

See also: Installation, Configuration, Security, Video Encoding, the Platform Compatibility matrix, and the sibling guides for GNOME/Mutter, KDE/KWin, Hyprland, and COSMIC.