NOW AVAILABLE - v1.2.0

Lamco RDP Server

A full-featured Wayland-native RDP server for Linux written in Rust

Professional remote desktop access with hardware-accelerated H.264 encoding, crystal-clear text rendering, and premium performance features. Built native to Wayland—no X11 compromises.

Remote desktop on Linux has always meant compromise. X11-based solutions don't work properly with modern Wayland desktops. VNC lacks the efficiency of H.264 encoding. Built-in options are limited to specific desktop environments.

Lamco RDP Server changes that.

Built from the ground up for Wayland using XDG Desktop Portals and written entirely in Rust, it delivers professional remote desktop capabilities to any modern Linux desktop. Connect from Windows, macOS, Linux, or mobile using standard RDP clients you already have.

Lamco RDP Server provides remote access to your existing Linux desktop session. Connect to your GNOME, KDE, or wlroots workstation via RDP and interact with your applications remotely. Perfect for remote work, system administration, and accessing your desktop from anywhere.

Looking for headless multi-user VDI? lamco-VDI (in development) will provide enterprise-grade virtual desktop infrastructure with Smithay-based custom compositor, multi-session support, and true headless deployment. Learn about the differences →

PLATFORM INFORMATION

Features Vary by Platform & Installation Method

Lamco RDP Server's capabilities depend on your distribution, desktop environment (GNOME, KDE, Sway, etc.), and installation method (Flatpak vs native package).

Native Package

Best for production servers and maximum performance.

  • Hardware acceleration (NVIDIA NVENC, Intel/AMD VA-API)
  • Advanced desktop environment integration
  • Full systemd support
  • Direct filesystem access

Available: Fedora, RHEL, openSUSE, Debian 13

Flatpak

Universal compatibility, works on any distribution.

  • Works on Ubuntu 22.04/24.04 and all distros
  • Sandboxed security
  • Automatic Flathub updates
  • Software encoding (no GPU acceleration)

Best for: Desktop testing, user workstations

Key Benefits

Wayland Native

The first RDP server built specifically for XDG Desktop Portals. Works with GNOME, KDE Plasma, Sway, Hyprland, and other Wayland compositors without requiring Xwayland or X11 fallbacks. Your Wayland security model stays intact.

Crystal-Clear Text

AVC444 encoding delivers full 4:4:4 chroma resolution—the same quality used by professional video workflows. Text, code, and UI elements render sharp and readable, not muddy like standard 4:2:0 video. Perfect for programming, document editing, and design work.

Platform note: Automatically enabled on Ubuntu 24.04, Fedora 40+, Debian 13. Disabled on RHEL 9 (Mesa 22.x quirk).

Hardware Accelerated

Offload H.264 encoding to your GPU. Support for NVIDIA NVENC and Intel/AMD VA-API means your CPU stays free for actual work. Automatic fallback to optimized software encoding when hardware isn't available.

💡 Native Package Feature

GPU acceleration available with native packages. Flatpak uses optimized software encoding (sandbox security).

Premium Performance

Adaptive frame rate adjusts from 5 to 60 FPS based on screen activity—full speed for video, power-saving for static content. Latency governor optimizes for interactive work or visual quality. Predictive cursor technology compensates for network delay.

Unattended Operation

Multi-strategy session persistence enables zero-dialog unattended access. Server reboots, service restarts, and network reconnections happen automatically without manual intervention.

  • GNOME servers: Mutter Direct API (zero dialogs)
  • wlroots servers: Native protocols (zero dialogs)
  • KDE desktops: Portal tokens (one dialog first time)
  • Enterprise: TPM 2.0 credential storage

Learn more →

Features

Video Encoding

CodecsAVC420, AVC444
EncodersOpenH264, NVENC, VA-API
Frame Rate5-60 FPS adaptive
Max Resolution4K UHD
Color SpacesBT.709, BT.601, sRGB

Input & Clipboard

KeyboardFull scancode translation
MouseAbsolute & relative
Multi-MonitorCoordinate mapping
Text ClipboardBidirectional sync
File ClipboardDrag-and-drop transfer

Security

EncryptionTLS 1.3
AuthenticationNone (dev), PAM (system)
CertificatesAuto-generated or custom

Desktop Environment Support

GNOME✅ Production ready
KDE Plasma 6+⏳ Pending testing
Sway⏳ Implementation complete
Hyprland⏳ Implementation complete
COSMIC🚧 In development

Integrated capability discovery: Our Service Advertisement Registry probes your system at startup—compositor, portal versions, hardware encoders, GPU capabilities—and automatically selects optimal code paths. When something isn't available, you get clear diagnostics instead of cryptic failures.

Platform Compatibility Matrix

Real test results from production systems. Features vary by the combination of distribution + desktop environment + installation method.

Encounter an issue? Report it on GitHub →

Ubuntu 24.04 LTS

GNOME 46.0 | Portal v5 | xdg-desktop-portal-gnome | Tested 2026-01-15 (VM 192.168.10.205, Flatpak)

✅ Production Ready

Note: Platform-specific limitations apply to older RHEL distributions (see RHEL 9 below)

✅ Verified Working (Flatpak):
  • • H.264/AVC444v2 encoding (4:4:4 chroma)
  • • Adaptive FPS: 5-60 FPS, ~10ms latency
  • • Full keyboard & mouse via Portal RemoteDesktop v2
  • • Damage tracking with 90%+ bandwidth savings
  • • Multi-monitor coordinate mapping
  • • Metadata cursor rendering
💡 Platform Characteristics:
  • • Clipboard: Text/image via Portal (stability varies with data complexity)
  • • Session persistence: Portal tokens rejected by GNOME policy
  • • Software encoding only in Flatpak (sandbox restriction)
🔧 Native Package Enhancements:
  • • Mutter Direct API (bypasses Portal for zero-dialog sessions)
  • • Hardware acceleration (NVENC/VA-API)
  • • Direct D-Bus integration
  • Status: Implementation complete, testing in progress

Ubuntu 22.04 LTS

GNOME 42 | Portal v4 | Mutter Direct API support | Testing in progress

⏳ Testing Pending

Implementation complete for native package deployment with Mutter Direct API integration.

Expected: Zero-dialog sessions, full RDP feature support. Testing infrastructure in progress.

Fedora 40 / 41 / 42

GNOME 46+ | Portal v5 | xdg-desktop-portal-gnome | Testing in progress

⏳ Testing Pending

Native package available via OBS. Expected to behave similar to Ubuntu 24.04 (GNOME 46).

Expected: AVC444 support, Mutter Direct API for zero-dialog sessions, full hardware acceleration.

RHEL 9.7 / AlmaLinux 9 / Rocky 9

GNOME 40 | Portal v4 | RemoteDesktop v1 | Tested 2026-01-15 (VM 192.168.10.6, Flatpak)

⚠️ Platform Limitations
✅ Working Features:
  • • H.264/AVC420 encoding (4:2:0 chroma)
  • • Full keyboard & mouse input
  • • Damage tracking with bandwidth optimization
  • • Multi-monitor support
❌ Not Available:
  • Clipboard synchronization (Portal RemoteDesktop v1 lacks clipboard interface)
  • • AVC444 codec (Mesa 22.x blur issue)
💡 Platform Notes:
  • • Portal v1 predates clipboard API (added in v2)
  • • AVC420 provides good quality for this platform
  • • RHEL 10 expected to include Portal v5
  • Clipboard details →

Debian 13 (Trixie)

GNOME 47+ | Portal v5+ | Native package available via OBS | Rust 1.79

⏳ Testing Pending

Native package builds available. Expected to behave similar to Ubuntu 24.04 with full feature support.

openSUSE Tumbleweed / Leap 15.6

GNOME / KDE available | Portal v5+ | Native package via OBS | Rust 1.78-1.82+

⏳ Testing Pending

Native packages building successfully. Features depend on desktop environment selection (GNOME vs KDE).

KDE Plasma 6.x

Kubuntu 24.04, KDE neon, Fedora KDE Spin | Portal v5 | xdg-desktop-portal-kde | Implementation complete

⏳ Testing Infrastructure In Progress
🎯 Implementation Complete:
  • • Portal ScreenCast v4 (video streaming)
  • • Portal RemoteDesktop v2 (input injection)
  • • Clipboard via SelectionOwnerChanged D-Bus signals
  • • Session restore tokens (Portal v5 persist/restore)
  • • DMA-BUF zero-copy buffer paths
📝 Expected KDE Advantages:
  • • SelectionOwnerChanged signals (more reliable clipboard than GNOME's approach)
  • • Portal token persistence policy (not rejected like GNOME)
  • • Strong DMA-BUF implementation (zero-copy video with lower CPU usage)
  • • Explicit sync support (Plasma 6.0+)
Backend: xdg-desktop-portal-kde | Platforms: Kubuntu, KDE neon, Fedora KDE Spin, openSUSE + KDE

Arch Linux / Manjaro

GNOME / KDE / Sway / Hyprland available | Portal versions vary | Rolling release | Rust: Latest

⏳ AUR Package Coming

Build from source using Cargo recommended currently. AUR package planned. Behavior depends on chosen desktop environment (GNOME/KDE/wlroots).

wlroots-based Compositors

Sway, Hyprland, River, Wayfire | xdg-desktop-portal-wlr / xdg-desktop-portal-hyprland | 1,050 lines implemented | Dual-strategy support

⏳ Testing Infrastructure In Progress
🚀 Native Package Strategy:

Direct wlroots protocol support (1,050 lines)

  • • wlr-screencopy-v1 (screen capture)
  • • wlr-virtual-keyboard-v1 (keyboard input)
  • • wlr-virtual-pointer-v1 (mouse input)
  • Zero permission dialogs (native protocols)
  • • Multi-monitor coordinate transformation

Compositors: Sway, Hyprland, River, Wayfire

📦 Flatpak Strategy:

Portal + libei/EIS integration (480 lines)

  • • Portal ScreenCast + RemoteDesktop
  • • ConnectToEIS for input injection
  • • Session token persistence
  • • One dialog first time, then token restores

Status: Waiting for Portal backend PR merges (xdg-desktop-portal-wlr #359, xdg-desktop-portal-hyprland)

COSMIC Desktop

Pop!_OS 24.04 | cosmic-comp (latest versions) | Portal v5 (partial implementation)

🚧 Active Development

Current Capabilities

  • • ScreenCast: ✅ Working
  • • RemoteDesktop: 🚧 In active development via Smithay project
  • • libei/Ei integration: Progressing

Development Velocity

  • • Capabilities improving with each COSMIC release
  • • Video streaming works currently
  • • Full RDP support expected as Smithay libei/Ei integration completes

Flatpak vs Native Package

Feature Flatpak Native Package
Universal compatibility ✅ Any distro Specific distro + DE
Hardware acceleration (NVENC/VA-API) Software encoding ✅ Full GPU support
Session persistence Varies by DE ✅ Direct APIs available
Systemd integration Basic support ✅ Full integration
File clipboard Configuration-dependent ✅ Direct filesystem access
Sandboxed security ✅ Yes System-level access
Automatic updates ✅ Via Flathub ✅ Via distro repos

📦 Flatpak Best For:

Desktop use, testing, user workstations, sandboxed environments, universal compatibility across any distribution

⚙️ Native Package Best For:

Production servers, unattended access, GPU acceleration, advanced desktop environment integration, systemd services

Have questions about which installation method is right for your setup?

Contact us at office@lamco.io or ask on GitHub

Comprehensive Distribution + Desktop Environment Support

Distribution Desktop Environment Portal Version GNOME Version Native Pkg Flatpak Status
Ubuntu 24.04 LTS GNOME v5 46.0 Tested ✅
Ubuntu 22.04 LTS GNOME v4 42 Testing ⏳
RHEL 9 / AlmaLinux 9 / Rocky 9 GNOME v4 40 Tested ✅
Fedora 40 / 41 / 42 GNOME v5 46+ Testing ⏳
Debian 13 (Trixie) GNOME v5+ 47+ Testing ⏳
openSUSE Tumbleweed GNOME / KDE v5+ 46+ / Plasma 6 Testing ⏳
openSUSE Leap 15.6 GNOME / KDE — / Plasma 5.x Testing ⏳
Kubuntu 24.04 KDE Plasma v5 Testing ⏳
KDE neon KDE Plasma v5 Testing ⏳
Arch / Manjaro GNOME / KDE / Sway / Hyprland v5+ 46+ / varies AUR ⏳ Testing ⏳
Pop!_OS 24.04 COSMIC v5 In Dev 🚧
Any (wlroots) Sway / Hyprland / River / Wayfire v5+ Testing ⏳

Portal versions and backends vary by distribution. The Service Advertisement Registry automatically detects your configuration and adapts.

Clipboard Availability by Platform

Clipboard synchronization availability depends on your Linux distribution's Portal RemoteDesktop version

Platform Portal Version Clipboard Status Details
Ubuntu 24.04 Portal v5 (RemoteDesktop v2) ✅ Available Full bidirectional clipboard (text, images, files)
Fedora 40+ Portal v5 (RemoteDesktop v2) ✅ Available Full bidirectional clipboard
Debian 13 Portal v5 (RemoteDesktop v2) ✅ Available Full bidirectional clipboard
openSUSE Tumbleweed Portal v5 (RemoteDesktop v2) ✅ Available Full bidirectional clipboard
RHEL 9 / AlmaLinux 9 / Rocky 9 Portal v4 (RemoteDesktop v1) ❌ Not Available Portal v1 lacks clipboard interface
KDE Plasma 6+ Portal v5 (expected) ✅ Expected Testing pending
wlroots (Sway/Hyprland) Portal v5 (varies) ✅ Expected Testing pending

Technical Background

The XDG Desktop Portal's RemoteDesktop interface added clipboard support in version 2, which ships with Portal v5 on modern distributions. Older distributions like RHEL 9 use Portal v4 with RemoteDesktop v1, which predates clipboard functionality.

Why Portal v1 lacks clipboard: The org.freedesktop.portal.RemoteDesktop interface in v1 (circa 2020-2022) focused exclusively on screen capture and input injection. Clipboard synchronization was added in RemoteDesktop v2 (2023+) to support bidirectional data transfer between remote client and Linux host.

Workarounds for RHEL 9

  • Wait for RHEL 10: Expected to ship Portal v5 with RemoteDesktop v2 (clipboard support)
  • File transfer alternatives: Use RDP file transfer when implemented (roadmap feature)
  • Native package deployment: Future releases may include alternative clipboard methods for Portal v1 platforms

Desktop Sharing vs Headless VDI

Lamco RDP Server is designed for desktop sharing — remotely accessing an existing Linux desktop session. For enterprise multi-user VDI deployments, we're developing lamco-VDI, a separate product built on the same RDP core.

✅ AVAILABLE NOW - v1.2.0

Lamco RDP Server

Desktop Sharing

What It Does

Remote access to your existing Linux desktop session. GNOME, KDE, or wlroots must be running.

Perfect For

  • ✓ Remote access to personal workstation
  • ✓ Work from home (access office desktop)
  • ✓ System administration with DE
  • ✓ Screen sharing / tech support

Architecture

  • • Single user per machine
  • • Requires desktop environment
  • • ~800MB+ resource usage
🚧 IN DEVELOPMENT

lamco-VDI

Headless Multi-User VDI

What It Does

Enterprise VDI with no desktop environment required. Isolated sessions for multiple concurrent users.

Perfect For

  • ✓ Enterprise VDI (100+ employees)
  • ✓ Cloud workspaces (AWS/Azure/GCP)
  • ✓ Thin client infrastructure
  • ✓ Kubernetes/Docker deployment

Architecture

  • • Multi-user (10-50+ per server)
  • • Embedded Smithay compositor
  • • ~256MB per user session

Alpha in 6-9 months

Your Requirement Recommended Product
Access my personal Linux workstation remotely Lamco RDP Server
Remote server with GNOME/KDE installed Lamco RDP Server
Multi-user concurrent sessions lamco-VDI (dev)
Headless server (no DE) lamco-VDI (dev)
Enterprise VDI (50+ users) lamco-VDI (dev)

Session Persistence & Unattended Access

Enable zero-dialog unattended operation through intelligent runtime strategy selection

Based on your compositor and deployment method, the server automatically selects the optimal approach

The Challenge

Wayland's security model requires explicit user permission for screen capture and input injection. By default, a permission dialog appears every time the server restarts — unacceptable for production servers, VMs, or headless deployments.

The Solution: Multi-Strategy Architecture

Lamco RDP Server implements four distinct session persistence strategies and automatically selects the best available for your specific environment.

Strategy Compositors Deployment Dialogs Status
Mutter Direct API GNOME 42+ Native package Zero dialogs Implementation complete
wlr-direct protocols Sway, Hyprland, River Native package Zero dialogs Implementation complete (1,050 lines)
Portal + Session Tokens KDE Plasma 6+, Non-GNOME Any One first time, then zero Expected to work
Portal + libei/EIS wlroots (in Flatpak) Flatpak One first time, then zero Implementation complete (480 lines)
Basic Portal (fallback) All compositors Any Every restart Fallback strategy

Strategy Selection is Automatic

You don't configure anything. At startup, Lamco RDP Server:

1. Detect Compositor

GNOME, KDE, wlroots, etc.

2. Check Deployment

Flatpak vs native package

3. Probe Portal

Version, interface support

4. Select Strategy

Optimal for zero dialogs

5. Fallback

If advanced unavailable

Flatpak Deployment

  • ✅ Works on ALL distributions
  • ✅ Sandboxed security
  • ✅ Automatic Flathub updates
  • ⚠️ GNOME: Portal strategy only (dialog every restart)
  • ✅ wlroots: libei/EIS strategy (one dialog, then zero)
  • ✅ KDE: Session tokens (one dialog, then zero)

Best for: Desktop testing, evaluation, user workstations

Native Package

  • ✅ Full system integration
  • ✅ Hardware encoding (VA-API, NVENC)
  • ✅ GNOME: Mutter Direct API (zero dialogs)
  • ✅ wlroots: Direct protocols (zero dialogs)
  • ✅ KDE: Session tokens (one dialog, then zero)
  • ⚠️ Distribution-specific (not universal)

Best for: Production servers, VMs, unattended operation

GNOME Session Persistence: Important Note

GNOME's Portal backend deliberately rejects session persistence for RemoteDesktop sessions. This is a security policy decision, not a missing feature. The Portal returns error: "Remote desktop sessions cannot persist".

Workaround for GNOME servers:

Use native package deployment with Mutter Direct API strategy, which bypasses the Portal entirely and achieves zero-dialog operation through GNOME Mutter's D-Bus APIs.

Status: Mutter Direct strategy is fully implemented and ready for testing.

Use Case: Unattended Server

Scenario: Remote server running Ubuntu 24.04, accessed via RDP for administration

❌ Without Session Persistence

  • • Server reboots → Click "Allow" dialog via monitor/KVM
  • • Service restarts for updates → Click "Allow" dialog
  • • Network reconnection → Click "Allow" dialog
  • Result: Manual intervention required constantly

✅ With Mutter Direct (Native Package)

  • • Server reboots → Automatic session restoration
  • • Service restarts → Automatic session restoration
  • • Network reconnection → Automatic session restoration
  • Result: Zero manual intervention

Encrypted Credential Storage

Session tokens are encrypted using environment-adaptive storage:

Flatpak:

Secret Portal → Host keyring

GNOME native:

GNOME Keyring (Secret Service API)

KDE native:

KWallet (Secret Service API)

Enterprise:

TPM 2.0 hardware binding

Fallback:

AES-256-GCM encrypted file

All methods use AES-256-GCM authenticated encryption. Master keys are never stored in plaintext.

How It Works

┌─────────────────┐     ┌──────────────────┐     ┌─────────────┐
│  Your Desktop   │     │ lamco-rdp-server │     │ RDP Client  │
│    (Wayland)    │     │                  │     │             │
├─────────────────┤     ├──────────────────┤     ├─────────────┤
│                 │     │                  │     │             │
│  XDG Portal ────┼────►│  Screen Capture  │     │  Windows    │
│                 │     │        ▼         │     │  mstsc.exe  │
│  PipeWire ──────┼────►│  H.264 Encode    │────►│             │
│                 │     │        ▼         │     │  FreeRDP    │
│  Compositor ◄───┼─────│  Input Inject    │◄────│             │
│                 │     │                  │     │  macOS RD   │
└─────────────────┘     └──────────────────┘     └─────────────┘
                
1.

Screen Capture: PipeWire streams your desktop via XDG ScreenCast portal

2.

Encoding: Frames are encoded to H.264 (hardware or software)

3.

Transmission: Encoded video streams to RDP client over TLS

4.

Input: Client keyboard/mouse events are translated and injected via libei

System Requirements

Server (Linux)

Required:

  • • Linux with Wayland compositor (GNOME, KDE, Sway, Hyprland, etc.)
  • Desktop environment must be running (user logged in)
  • • PipeWire (screen capture)
  • • XDG Desktop Portal support (v4+ recommended, v5 for full clipboard)
  • • Compositor-specific portal backend (xdg-desktop-portal-gnome, -kde, or -wlr)

Note: Lamco RDP Server shares your existing desktop session. For headless multi-user VDI without desktop environment, see lamco-VDI (in development).

For Hardware Encoding:

  • NVIDIA: GPU with NVENC, nvidia-driver, libnvidia-encode
  • Intel: VA-API support, intel-media-va-driver or i965-va-driver
  • AMD: VA-API support, mesa-va-drivers

Compatible RDP Clients

Windows Built-in Remote Desktop, FreeRDP
macOS Microsoft Remote Desktop, FreeRDP
Linux FreeRDP, Remmina
Android Microsoft Remote Desktop
iOS Microsoft Remote Desktop

Pricing

Lamco RDP Server is free for personal use and small businesses.

Commercial licenses required only for organizations with more than 3 employees OR more than $1M annual revenue.

Plan Price Servers
Monthly$4.99/mo1
Annual$49/yr5
Perpetual$9910
Corporate$599100
Service Provider$2,999Unlimited
View Full Pricing →

Get Started

Download

Available as Flatpak, .deb, .rpm, or source

Download →

Documentation

Installation guides and configuration reference

Explore Technology →

Support

Community and commercial support

Contact Us →

Open Source Foundation

Lamco RDP Server is built on open source infrastructure that we publish and maintain:

lamco-portal

XDG Desktop Portal integration

lamco-pipewire

PipeWire screen capture

lamco-video

Video frame processing

lamco-rdp-input

Input event translation

lamco-rdp-clipboard

Clipboard synchronization

These crates are MIT/Apache-2.0 dual-licensed and available for anyone building remote desktop infrastructure.

View All Open Source →

License

Lamco RDP Server is licensed under the Business Source License 1.1.

Free Use

Personal use, non-profits, small businesses (≤3 employees OR <$1M revenue)

Commercial Use

License required for larger organizations (>3 employees OR >$1M revenue)

Open Source (2028)

Converts to Apache-2.0 on December 31, 2028

What's Next?

We're actively developing Lamco RDP Server based on user feedback. Features under consideration:

Audio Playback (RDPSND)

Stream system audio to client

Microphone Input

Bidirectional audio for calls

Multi-Monitor Improvements

Dynamic layout changes

Drive Redirection

Access client drives from server

Have a feature request? We want to hear from you.