Milestone 5: deliver embedded RDP sessions and lifecycle hardening

This commit is contained in:
Keith Smith
2026-03-03 18:59:26 -07:00
parent 230a401386
commit 36006bd4aa
2941 changed files with 724359 additions and 77 deletions

View File

@@ -0,0 +1,14 @@
set(DEPS
../../common/man/freerdp-global-options.1
xfreerdp-shortcuts.1
../../common/man/freerdp-global-envvar.1
../../common/man/freerdp-global-config.1
xfreerdp-global-config.1
xfreerdp-examples.1
../../common/man/freerdp-global-links.1
)
include(GetSysconfDir)
get_sysconf_dir("" SYSCONF_DIR)
set(VAR_NAMES "VENDOR" "PRODUCT" "VENDOR_PRODUCT" "SYSCONF_DIR")
generate_and_install_freerdp_man_from_xml(${MODULE_NAME} "1" "${DEPS}" "${VAR_NAMES}")

View File

@@ -0,0 +1,181 @@
.SH "EXAMPLES"
.PP
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
#!/bin/bash
# we got a key combination
if [ "$1" = "key" ];
then
# we only got one argument \*(Aqkey\*(Aq
# list all supported combinations with echo
if [ $# \-eq 1 ];
then
echo "ctrl+alt+f1"
echo "ctrl+alt+f2"
else
# We want the action for a single combination
# use \*(Aqkey\-local\*(Aq to not forward to RDP session
if [ "$2" = "ctrl+alt+f1" ];
then
echo "key\-local"
fi
if [ "$2" = "ctrl+alt+f2" ];
then
echo "/usr/local/bin/somescript\&.sh"
fi
fi
fi
if [ "$1" = "xevent" ];
then
if [ $# \-eq 1 ];
then
echo "FocusIn"
echo "SelectionClear"
else
if [ "$2" = "SelectionNotify" ];
then
echo "/usr/local/bin/someprogram"
fi
fi
fi
.fi
.if n \{\
.RE
.\}
Example action script for key events, listing
\fIctrl+alt+f1\fR
to be handled by local window manager and
\fIctrl+alt+f2\fR
executing a script
.sp
The return value of the program determines if the key is handled locally or remotely (0 for local, > 0 for remote, < 0 for errors)
.RE
.PP
\fB@MANPAGE_NAME@ connection\&.rdp /p:Pwd123! /f\fR
.RS 4
Connect in fullscreen mode using a stored configuration
\fIconnection\&.rdp\fR
and the password
\fIPwd123!\fR
.RE
.PP
\fB@MANPAGE_NAME@ /u:USER /size:50%h /v:rdp\&.contoso\&.com\fR
.RS 4
Connect to host
\fIrdp\&.contoso\&.com\fR
with user
\fIUSER\fR
and a size of
\fI50 percent of the height\fR\&. If width (w) is set instead of height (h) like /size:50%w\&. 50 percent of the width is used\&.
.RE
.PP
\fB@MANPAGE_NAME@ /u:CONTOSO\e\eJohnDoe /p:Pwd123! /v:rdp\&.contoso\&.com\fR
.RS 4
Connect to host
\fIrdp\&.contoso\&.com\fR
with user
\fICONTOSO\e\eJohnDoe\fR
and password
\fIPwd123!\fR
.RE
.PP
\fB@MANPAGE_NAME@ /u:JohnDoe /p:Pwd123! /w:1366 /h:768 /v:192\&.168\&.1\&.100:4489\fR
.RS 4
Connect to host
\fI192\&.168\&.1\&.100\fR
on port
\fI4489\fR
with user
\fIJohnDoe\fR, password
\fIPwd123!\fR\&. The screen width is set to
\fI1366\fR
and the height to
\fI768\fR
.RE
.PP
\fB@MANPAGE_NAME@ /u:JohnDoe /p:Pwd123! /vmconnect:C824F53E\-95D2\-46C6\-9A18\-23A5BB403532 /v:192\&.168\&.1\&.100\fR
.RS 4
Establish a connection to host
\fI192\&.168\&.1\&.100\fR
with user
\fIJohnDoe\fR, password
\fIPwd123!\fR
and connect to Hyper\-V console (use port 2179, disable negotiation) with VMID
\fIC824F53E\-95D2\-46C6\-9A18\-23A5BB403532\fR
.RE
.PP
\fB+clipboard\fR
.RS 4
Activate clipboard redirection
.RE
.PP
\fB/drive:home,/home/user\fR
.RS 4
Activate drive redirection of
\fI/home/user\fR
as home drive
.RE
.PP
\fB/smartcard:<device>\fR
.RS 4
Activate smartcard redirection for device
\fIdevice\fR
.RE
.PP
\fB/printer:<device>,<driver>\fR
.RS 4
Activate printer redirection for printer
\fIdevice\fR
using driver
\fIdriver\fR
.RE
.PP
\fB/serial:<device>\fR
.RS 4
Activate serial port redirection for port
\fIdevice\fR
.RE
.PP
\fB/parallel:<device>\fR
.RS 4
Activate parallel port redirection for port
\fIdevice\fR
.RE
.PP
\fB/sound:sys:alsa\fR
.RS 4
Activate audio output redirection using device
\fIsys:alsa\fR
.RE
.PP
\fB/microphone:sys:alsa\fR
.RS 4
Activate audio input redirection using device
\fIsys:alsa\fR
.RE
.PP
\fB/multimedia:sys:alsa\fR
.RS 4
Activate multimedia redirection using device
\fIsys:alsa\fR
.RE
.PP
\fB/usb:id,dev:054c:0268\fR
.RS 4
Activate USB device redirection for the device identified by
\fI054c:0268\fR
.RE
.PP
\fB/kbd:remap:29=58,remap:58=29\fR
.RS 4
Swap left Control (\
\fI29\fR\
) and Caps Lock (\
\fI58\fR\
).
.RE

View File

@@ -0,0 +1,22 @@
.SH "GLOBAL CONFIGURATION (X11 client)"
.PP
The X11 client configuration location is
\fI@SYSCONF_DIR@/xfreerdp\&.json\fR
.br
File format is JSON
.RE
.PP
Supported options:
.RS 4
.PP
\fIisActionScriptAllowed\fR
.RS 4
.PP
.RS 4
\fIJSON boolean\fR
.br
Allow or block action scripts. Default (if option is not set) is to allow action scripts.
.RE
.RE

View File

@@ -0,0 +1,44 @@
.SH "KEYBOARD SHORTCUTS"
.PP
<Right CTRL>
.RS 4
releases keyboard and mouse grab.
.br
If keyboard is grabbed the local system shortcuts do no longer work and are sent to the remote system.
.br
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.
.RE
.PP
<CTRL>+<ALT>+<Return>
.RS 4
toggles fullscreen state of the application
.RE
.PP
<CTRL>+<ALT>+<m>
.RS 4
Minimizes the application
.RE
.PP
<CTRL>+<ALT>+c
.RS 4
toggles remote control in a remote assistance session
.RE
.PP
<CTRL>+<ALT>+<d>
.RS 4
Disconnect the session and terminate application
.RE
.PP
Action Script
.RS 4
executes a predefined script on key press\&.
Should the script not exist it is ignored\&.
Scripts can be provided at the default location
\fI$XDG_CONFIG_HOME/freerdp/action\&.sh\fR
or as command line argument
\fI/action:script:<path>\fR\&.
The script will receive the current key combination as argument\&.
The output of the script is parsed for
\fIkey\-local\fR
which tells that the script used the key combination, otherwise the combination is forwarded to the remote\&.
.RE

View File

@@ -0,0 +1,15 @@
.TH "@MANPAGE_NAME@" "1" "@MAN_TODAY@" "freerdp" "@MANPAGE_NAME@"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.nh
.ad l
.SH "NAME"
@MANPAGE_NAME@ \- FreeRDP X11 client
.SH "SYNOPSIS"
.PP
\fB@MANPAGE_NAME@\fR
[file] [options] [/v:server[:port]]
.SH "DESCRIPTION"
.PP
\fB@MANPAGE_NAME@\fR
is an X11 Remote Desktop Protocol (RDP) client which is part of the FreeRDP project\&. An RDP server is built\-in to many editions of Windows\&. Alternative servers included ogon, gnome\-remote\-desktop, xrdp and VRDP (VirtualBox)\&.