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:
Minimal config
~/.config/lamco-rdp-server/config.toml:
# 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:
Connect
Dual-stack by default (IPv4 + IPv6). Use a hostname or explicit address (IPv6 in brackets):
- Windows:
mstsc.exe→host: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'swl_shmbuffer 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-screencopybenchmarked cleanly at approximately 25 fps).
Troubleshooting
| Symptom | Cause | Fix |
| Colors are skewed (blue renders as brown) | The bridge assumed BGRx, but sway delivers Xbgr8888 (RGBx byte order) via wlr-screencopy | Fixed in 1.4.4 (honors the wl_shm capture format and swaps R/B) |
| Connects, then black screen | No 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 nothing | Virtual-input protocols unavailable in the running compositor | Confirm 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.