Skip to main content
sdl-freerdp is a cross-platform RDP client built on SDL2 or SDL3. It ships two separate binaries — sdl2-freerdp and sdl3-freerdp — produced by the client/SDL/SDL2 and client/SDL/SDL3 build targets respectively. Both accept the same command-line options as xfreerdp and add an SDL-rendered graphical dialog layer for credentials and certificates.

Platform support

On Wayland with wlroots-based compositors (e.g. Sway), set the FREERDP_WLROOTS_HACK environment variable to work around multimonitor detection limitations. See the environment variables section.

Synopsis

The full option set is identical to xfreerdp. The most commonly used options are shown below; for the complete reference see the xfreerdp options page.

Quick examples

Key differences from xfreerdp

SDL-specific behaviour

Graphical dialogs

When the server requests credentials or presents an untrusted certificate, sdl-freerdp shows a graphical SDL-rendered dialog instead of a terminal prompt. This makes it suitable for use as a standalone application on any platform without a terminal.

Touch and gesture input

The SDL client receives native touch events from the OS and forwards them to the server via the multitouch channel. Enable it explicitly if needed:

Window and display

Common display options:

Performance presets

Environment variables

Build notes

The SDL clients are built alongside the rest of FreeRDP when the WITH_CLIENT_SDL2 (or WITH_CLIENT_SDL3) CMake option is enabled. SDL2 development libraries must be present:
For SDL3, replace SDL2 with SDL3 throughout and install the SDL3 development packages.
To enable Azure AD / WebView authentication in the SDL client, add -DWITH_WEBVIEW=ON to your CMake invocation and install the appropriate WebView library for your platform.