sdl-freerdp3(1)
โจ NAME โจ
sdl-freerdp3 โ the FreeRDP SDL client ๐
Like, that's the whole name section. Short, sweet, iconic, no notes.
๐ธ SYNOPSIS ๐ธ
sdl-freerdp3 [file] [options] [/v:server[:port]]
๐ DESCRIPTION ๐
okay so bestie, sdl-freerdp3 is an SDL Remote Desktop Protocol (RDP) client, and it's part of the FreeRDP project ๐ฅ๏ธโจ
And here's the tea: an RDP server is built-in to many editions of Windows ๐ช so you might not even need to install one. But if you do, the alternative servers out there include ogon, gnome-remote-desktop, xrdp and VRDP (VirtualBox) ๐โโ๏ธ
๐ OPTIONS ๐
okay buckle up bestie, there's a LOT here. every single one, no skips, let's go ๐โโ๏ธ๐จ
/a:addin[,options],/addin:addin[,options]โ Addin ๐งฉ/azure:[tenantid:id],[use-tenantid[:[on|off]],[ad:url][avd-access:format string],[avd-token:format string],[avd-scope:format string]โ AzureAD options โ๏ธ/action-script:file-nameโ Action script, and the default is~/.config/freerdp/action.sh๐/admin,/consoleโ Admin (or console) session ๐+aeroโ desktop composition, and it's off by default ๐ช/app:program:[path|||alias],cmd:command,file:filename,guid:guid,icon:filename,name:name,workdir:directory,hidef:[on|off]โ Remote application program ๐ฑ/assistance:passwordโ Remote assistance password ๐ค/auto-request-control:โ Automatically request remote assistance input control ๐ฎ+async-channelsโ Asynchronous channels, and heads up it's experimental, off by default ๐งช+async-updateโ Asynchronous update, off by default ๐/audio-mode:modeโ Audio output mode ๐+auth-onlyโ Authenticate only, off by default ๐/auth-pkg-list:!ntlm,kerberosโ Authentication package filter. It's a comma-separated list, and you use!to exclude stuff ๐ซ-authenticationโ Authentication, experimental, and it's on by default โจ+auto-reconnectโ Automatic reconnection, off by default ๐/auto-reconnect-max-retries:retriesโ Automatic reconnection maximum retries.0means unlimited, and the range is[0,1000]๐ข/bpp:depthโ Session bpp (color depth), default is16๐จ/buildconfigโ Print the build configuration ๐ ๏ธ/cache:[bitmap[:on|off],codec[:rfx|nsc],glyph[:on|off],offscreen[:on|off],persist,persist-file:filename]/cert:[deny,ignore,name:name,tofu,fingerprint:hash:hash as hex[,fingerprint:hash:another hash]]โ Certificate accept options. Use with care! ๐ฌdeny... Automatically abort connection if the certificate does not match, no user interaction. ๐ โโ๏ธignore... Ignore the certificate checks altogether (overrules all other options) ๐name... Use the alternate <name> instead of the certificate subject to match locally stored certificates ๐ท๏ธtofu... Accept certificate unconditionally on first connect and deny on subsequent connections if the certificate does not match ๐ซฃfingerprints... A list of certificate hashes that are accepted unconditionally for a connection ๐ซ
/client-build-number:numberโ Client Build Number sent to server. it influences smartcard behaviour, see[MS-RDPESC]๐ณ/client-hostname:nameโ Client Hostname to send to server ๐/clipboard:[[use-selection:atom],[direction-to:[all|local|remote|off]],[files-to[:all|local|remote|off]]]โ Redirect clipboard ๐:use-selection:<atom>... (X11) Specify which X selection to access. Default isCLIPBOARD.PRIMARYis the X-style middle-click selection. ๐ฑ๏ธdirection-to:[all|local|remote|off]control enabled clipboard direction โ๏ธfiles-to:[all|local|remote|off]control enabled file clipboard direction (default:on) ๐
-compression,-zโ compression, on by default ๐๏ธ/compression-level:levelโ Compression level, and the options are0,1,2๐+credentials-delegationโ credentials delegation, off by default ๐คฒ/d:domainโ Domain ๐-decorationsโ Window decorations, on by default ๐ผ๏ธ/dispโ Display control ๐ฅ๏ธ/drive:name,pathโ Redirect directory <path> as named share <name>. Hotplug support is enabled with/drive:hotplug,*. This argument provides the same function as "Drives that I plug in later" option in MSTSC ๐พ+drivesโ Redirect all mount points as shares, off by default ๐๏ธ/dump:record|replay,file:file[,nodelay]โ record or replay dump ๐ฅ/dvc:channel[,options]โ Dynamic virtual channel ๐ฐ๏ธ+dynamic-resolutionโ Send resolution updates when the window is resized, off by default ๐/echo,/echoโ Echo channel ๐ข-encryptionโ Encryption, experimental, on by default ๐/encryption-methods:[40,][56,][128,][FIPS]โ RDP standard security encryption methods ๐ก๏ธ/fโ Fullscreen mode, and<Ctrl>+<Alt>+<Enter>toggles fullscreen ๐ฅ๏ธโจ+fipsmodeโ FIPS mode, off by default ๐บ๐ธ/floatbar[:sticky:[on|off],default:[visible|hidden],show:[always|fullscreen|window]]โ floatbar is disabled by default, and when you enable it, it defaults to sticky in fullscreen mode ๐๏ธ-fontsโ smooth fonts (ClearType), on by default ๐ค+force-console-callbacksโ Use default callbacks (console) for certificate/credential/... , off by default ๐๏ธ/frame-ack:numberโ Number of frame acknowledgement ๐/args-from:file|stdin|fd:number|env:nameโ Read command line from a file, stdin or file descriptor. This argument can not be combined with any other. Provide one argument per line ๐/from-stdin[:force]โ Read credentials from stdin. With <force> the prompt is done before connection, otherwise on server request โจ๏ธ/gateway:g:gateway[:port],u:user,d:domain,p:password,usage-method:[direct|detect],access-token:token,type:[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-sspi-ntlm]]|arm,url:wss://url,bearer:oauth2-bearer-token,โ Gateway Hostname ๐ช/gw:g:gateway[:port],u:user,d:domain,p:password,usage-method:[direct|detect],access-token:token,type:[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-sspi-ntlm]]|arm,url:wss://url,bearer:oauth2-bearer-tokenโ Gateway Hostname ๐ช/gdi:sw|hwโ GDI rendering ๐จ/geometryโ Geometry tracking channel ๐+gesturesโ Consume multitouch input locally, off by default ๐/gfx[:[progressive[:on|off]|RFX[:on|off]|AVC420[:on|off]AVC444[:on|off]],mask:value,small-cache[:on|off],thin-client[:on|off],progressive[:on|off]]]โ RDP8 graphics pipeline ๐-grab-keyboardโ Grab keyboard focus, forward all keys to remote, on by default โจ๏ธ-grab-mouseโ Grab mouse focus, forward all events to remote, on by default ๐ฑ๏ธ/h:heightโ Height, default is768๐-heartbeatโ Support heartbeat PDUs, on by default ๐/help,/?โ Print help ๐+home-driveโ Redirect user home as share, off by default ๐ก/ipv4[:[:force]],/4[:[:force]]โ Prefer IPv4 A record over IPv6 AAAA record 4๏ธโฃ/ipv6[:[:force]],/6[:[:force]]โ Prefer IPv6 AAAA record over IPv4 A record 6๏ธโฃ/jpegโ JPEG codec support ๐ผ๏ธ/jpeg-quality:percentageโ JPEG quality โจ/kbd:[layout:[0xid|name],lang:0xid,fn-key:value,type:value,subtype:value,unicode[:on|off],remap:key1=value1,remap:key2=value2,pipe:filename]โ Keyboard related options โจ๏ธ:layout: set the keyboard layout announced to the server ๐บ๏ธlang: set the keyboard language identifier sent to the server ๐fn-key: Function key value ๐remap: RDP scancode to another one. Use/list:kbd-scancodeto get the mapping. Example: To switch 'a' and 's' on a US keyboard:/kbd:remap:0x1e=0x1f,remap:0x1f=0x1e๐pipe: Name of a named pipe that can be used to type text into the RDP session ๐ช
/kerberos:[kdc-url:url,lifetime:time,start-time:time,renewable-lifetime:time,cache:path,armor:path,pkinit-anchors:path,pkcs11-module:name]โ Kerberos options ๐ซ/load-balance-info:info-stringโ Load balance info โ๏ธ/list:[kbd|kbd-scancode|kbd-lang[:value]|smartcard[:[pkinit-anchors:path][,pkcs11-module:name]]|monitor|tune|timezones]โ List available options for subcommand (default:List available options for subcommand) ๐/log-filters:tag:level[,tag:level[,...]]โ Set logger filters, seewLog(7)for details ๐/log-level:[OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE]โ Set the default log level, seewLog(7)for details ๐/max-fast-path-size:sizeโ Specify maximum fast-path update size ๐/max-loop-time:timeโ Specify maximum time in milliseconds spend treating packets โฑ๏ธ+menu-animsโ menu animations, off by default โจ/microphone[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]],โ Audio input (microphone) ๐ค/mic[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]]โ Audio input (microphone) ๐ค/monitors:id[,id[,...]]โ Select monitors to use, and ngl it's only effective in fullscreen or multimonitor mode ๐ฅ๏ธ๐ฅ๏ธ-mouse-motionโ Send mouse motion events, on by default ๐ฑ๏ธ+mouse-relativeโ Send mouse motion with relative addressing, off by default ๐ฑ๏ธ/mouse:[relative:[on|off],grab:[on|off]]โ Mouse related options ๐ญ:relative: send relative mouse movements if supported by server โ๏ธgrab: grab the mouse if within the window โ
/multimon[:force]โ Use multiple monitors ๐ฅ๏ธ๐ฅ๏ธ+multitouchโ Redirect multitouch input, off by default ๐-multitransportโ Support multitransport protocol, on by default ๐-negoโ protocol security negotiation, on by default ๐ค/network:[invalid|modem|broadband|broadband-low|broadband-high|wan|lan|auto]โ Network connection type ๐ถ/nsc,/nscodecโ NSCodec support ๐๏ธ/orientation:[0|90|180|270]โ Orientation of display in degrees ๐+old-licenseโ Use the old license workflow (no CAL and hwId set to0), off by default ๐/p:passwordโ Password ๐/parallel[:name[,path]]โ Redirect parallel device ๐จ๏ธ/parent-window:window-idโ Parent window id ๐ช/pcb:blobโ Preconnection Blob ๐ซง/pcid:idโ Preconnection Id ๐/pheight:heightโ Physical height of display (in millimeters) ๐/play-rfx:pcap-fileโ Replay rfx pcap file โถ๏ธ/port:numberโ Server port ๐-suppress-outputโ suppress output when minimized, on by default ๐คซ+print-reconnect-cookieโ Print base64 reconnect cookie after connecting, off by default ๐ช/printer[:name[,driver[,default]]]โ Redirect printer device ๐จ๏ธ/proxy:[proto://][user:password@]host[:port]โ Proxy settings: override env. var (see also environment variable below). Protocol"socks5"should be given explicitly where"http"is default ๐งฆ/pth:password-hash,/pass-the-hash:password-hashโ Pass the hash (restricted admin mode) ๐ฅท/pwidth:widthโ Physical width of display (in millimeters) ๐/rdp2tcp:executable path[:arg...]โ TCP redirection ๐/reconnect-cookie:base64-cookieโ Pass base64 reconnect cookie to the connection ๐ช/redirect-prefer:FQDN|IP|NETBIOS,[...]โ Override the preferred redirection order ๐/relax-order-checks,/relax-order-checksโ do NOT check that an RDP order was announced during capability exchange. literally only use this when you're connecting to a buggy server ๐/restricted-admin,/restrictedAdminโ restricted admin mode โจ/remoteGuard,/remoteGuardโ remote guard credentials ๐ก๏ธ/rfxโ RemoteFX ๐ซ/rfx-mode:[image|video]โ RemoteFX mode ๐ฌ/scale:[100|140|180]โ scaling factor of the display (default:100) ๐/scale-desktop:percentageโ scaling factor for desktop applications, value has to be between100and500(default:100) ๐ฅ๏ธ/scale-device:100|140|180โ scaling factor for app store applications (default:100) ๐ฑ/sec:[rdp[:[on|off]]|tls[:[on|off]]|nla[:[on|off]]|ext[:[on|off]]|aad[:[on|off]]]โ force a specific protocol security, bestie. e.g./sec:nlaenables NLA and disables all the others, while/sec:nla:[on|off]just toggles NLA ๐/serial[:name[,path[,driver[,permissive]]]],/tty[:name[,path[,driver[,permissive]]]]โ redirect a serial device ๐/server-name:nameโ user-specified server name to use for validation (TLS, Kerberos) ๐ท๏ธ/shell:shellโ alternate shell ๐/shell-dir:dirโ shell working directory ๐/size:widthxheightorpercent%[wh]โ screen size (default:1024x768) ๐/smart-sizing[:widthxheight]โ scale the remote desktop to the window size ๐ช/smartcard[:str[,str...]]โ redirect the smartcard devices that contain any of the str in their names ๐ณ/smartcard-logon[:[cert:path,key:key,pin:pin,csp:csp name,reader:reader,card:card]]โ activates Smartcard (optional certificate) Logon authentication ๐/sound[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]],/audio[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]]โ audio output (sound) ๐/spanโ span the screen over multiple monitors ๐ฅ๏ธ๐ฅ๏ธ/spn-class:service-classโ SPN authentication service class ๐ซ/ssh-agent,/ssh-agentโ SSH Agent forwarding channel ๐ง/sspi-module:SSPI module pathโ SSPI shared library module file path ๐/winscard-module:WinSCard module pathโ WinSCard shared library module file path ๐/disable-outputโ deactivate ALL graphics decoding in the client session. super useful for load tests with a ton of simultaneous connections ๐ฅ/t:title,/title:titleโ window title โจ-themesโ themes (default:on) ๐จ/timeout:time in ms,/timeout:time in msโ advanced setting for high latency links: adjust the connection timeout, use this if you keep hitting timeout failures on your connection (default:9000) โฑ๏ธ/timezone:windows timezoneโ use the supplied windows timezone for the connection (requires server support), peep/list:timezonesfor the allowed values ๐/tls:[ciphers|seclevel|secrets-file|enforce]โ TLS configuration options:ciphers:[netmon|ma|<cipher names>]seclevel:<level>, default:1, range:[0-5]โ override the default TLS security level, might be required for older target serverssecrets-file:<filename>enforce[:[ssl3|1.0|1.1|1.2|1.3]]โ force use of a specific SSL/TLS version for a connection. some servers have buggy TLS version negotiation and might fail without this. defaults to TLS 1.2 if no argument is supplied. use1.0for windows 7 ๐
-toggle-fullscreenโ Alt+Ctrl+Enter to toggle fullscreen (default:on) ๐ผ๏ธ/tune:setting:value,setting:valueโ[experimental]directly manipulate freerdp settings. use with EXTREME caution! (default: ) โ ๏ธ
bestie I am not joking about that one, /tune is giving mad scientist energy ๐งช
/u:[[domain]user|user[@domain]]โ username ๐ค+unmap-buttonsโ let the server see the real physical pointer button (default:off) ๐ฑ๏ธ/usb:[dbg,][id:vid:pid#...,][addr:bus:addr#...,][auto]โ redirect a USB device ๐/v:server[:port]โ server hostname | URL | IPv4 | IPv6, or/some/path/to/pipe, or|:1234to pass a TCP socket to use ๐/vc:channel[,options]โ static virtual channel ๐ก/versionโ print version ๐/videoโ video optimized remoting channel ๐ฅ/prevent-session-lock[:time in sec]โ prevent session locking by injecting fake mouse motion events to the server when the connection is idle (default interval:180seconds) ๐ญ/vmconnect[:vmid]โ Hyper-V console (use port2179, disable negotiation) ๐ฅ๏ธ/w:widthโ width (default:1024) ๐-wallpaperโ wallpaper (default:on) ๐ผ๏ธ+window-dragโ full window drag (default:off) โ/window-position:xposxyposโ window position ๐/wm-class:class-nameโ set theWM_CLASShint for the window instance ๐ท๏ธ/workareaโ use available work area ๐งฉ
๐ CONFIGURATION FILE ๐
๐ Format and Location
The configuration file is stored per user, bestie.
The XDG_CONFIG_HOME environment variable can be used to override the base directory.
This defaults to ~/.config. The location relative to XDG_CONFIG_HOME is $XDG_CONFIG_HOME/freerdp/sdl-freerdp.json
The configuration is stored in JSON format ๐พ
โจ Supported options
SDL_KeyModMask
Defines the key combination required for SDL client shortcuts.
Default KMOD_RSHIFT
An array of SDL_Keymod strings as defined at /SDL_Keymod โจ๏ธ
SDL_Fullscreen
Toggles client fullscreen state.
Default SDL_SCANCODE_RETURN.
A string as defined at /SDLScancodeLookup ๐ผ๏ธ
SDL_Minimize
Minimizes the client window
Default SDL_SCANCODE_M.
A string as defined at /SDLScancodeLookup โ
SDL_Resizeable
Toggles local window resizeable state.
Default SDL_SCANCODE_R.
A string as defined at /SDLScancodeLookup โ๏ธ
SDL_Grab
Toggles keyboard and mouse grab state. If the keyboard is grabbed the local system shortcuts do no longer work and are sent to the remote system. If the Mouse is grabbed (optional) local gesture detection does not work and the mouse might not be able to leave the RDP window. Mouse events are not altered..
Default SDL_SCANCODE_G.
A string as defined at /SDLScancodeLookup ๐ฑ๏ธ
SDL_Disconnect
Disconnects from the RDP session.
Default SDL_SCANCODE_D.
A string as defined at /SDLScancodeLookup ๐ช
๐ ENVIRONMENT VARIABLES ๐
wlog environment variable
sdl-freerdp3 uses wLog as its log facility, you can refer to the corresponding man page (wlog(7)) for more info. Arguments passed via the /log-level or /log-filters have precedence over the environment variables ๐
๐ GLOBAL CONFIGURATION ๐
๐ Format and Location
The configuration file is stored in global system configuration.
The location is /etc/FreeRDP/FreeRDP/certificates.json
File format is JSON ๐พ
โจ Supported options
deny
JSON boolean
Deny the certificate if the check against the system SSL store was not successful ๐ซ
ignore
JSON boolean
Ignore certificate failures, just ignore the certificate ๐
deny-userconfig
JSON boolean
If the checks in the global configuration do not accept the certificate do not ask the user ๐ค
certificate-db
JSON array
An array of JSON objects with:
typeโ JSON string- a string identifying the hash algorithm used, e.g.
sha256
- a string identifying the hash algorithm used, e.g.
hashโ JSON string- a string of hex integer values representing the certificate hash, e.g.
0123456789abcdef
- a string of hex integer values representing the certificate hash, e.g.
๐ธ EXAMPLES ๐ธ
sdl-freerdp3 connection.rdp /p:Pwd123! /f
Connect in fullscreen mode using a stored configuration connection.rdp and the password Pwd123! ๐ฅ๏ธ
sdl-freerdp3 /u:USER /size:50%h /v:rdp.contoso.com
Connect to host rdp.contoso.com with user USER and a size of 50 percent of the height. If width (w) is set instead of height (h) like /size:50%w. 50 percent of the width is used. ๐
sdl-freerdp3 /u:CONTOSO\\JohnDoe /p:Pwd123! /v:rdp.contoso.com
Connect to host rdp.contoso.com with user CONTOSO\\JohnDoe and password Pwd123! ๐
sdl-freerdp3 /u:JohnDoe /p:Pwd123! /w:1366 /h:768 /v:192.168.1.100:4489
Connect to host 192.168.1.100 on port 4489 with user JohnDoe, password Pwd123!. The screen width is set to 1366 and the height to 768 ๐ฅ๏ธ
sdl-freerdp3 /u:JohnDoe /p:Pwd123!
/vmconnect:C824F53E-95D2-46C6-9A18-23A5BB403532 /v:192.168.1.100
Establish a connection to host 192.168.1.100 with user JohnDoe, password Pwd123! and connect to the Hyper-V console (use port 2179, disable negotiation) with VMID C824F53E-95D2-46C6-9A18-23A5BB403532 ๐ง
+clipboard
Activate clipboard redirection ๐
/drive:home,/home/user
Activate drive redirection of /home/user as home drive ๐พ
/smartcard:<device>
Activate smartcard redirection for device device ๐ณ
/printer:<device>,<driver>
Activate printer redirection for printer device using driver driver ๐จ๏ธ
/serial:<device>
Activate serial port redirection for port device ๐
/parallel:<device>
Activate parallel port redirection for port device ๐งท
/sound:sys:alsa
Activate audio output redirection using device sys:alsa ๐
/microphone:sys:alsa
Activate audio input redirection using device sys:alsa ๐ค
/multimedia:sys:alsa
Activate multimedia redirection using device sys:alsa ๐ฌ
/usb:id,dev:054c:0268
Activate USB device redirection for the device identified by 054c:0268 ๐
๐ LINKS ๐
๐ AUTHOR ๐
The FreeRDP Team ๐
okay bestie that's the whole thing, no cap ๐ซถ this is sdl-freerdp3(1) from the freerdp source, dated 2026-06-12 โ go forth and remote desktop, you absolute icon ๐
โจ
๐ฆ where this page comes from
- ubuntu questing: freerdp3-sdl 3.16.0+dfsg-2ubuntu0.5
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms