Warning, /plasma/krdp/README.md is written in an unsupported language. File is not indexed.
0001 # KRdp 0002 0003 Library and examples for creating an RDP server. 0004 0005 # Running the example server 0006 0007 The example server requires a username and password to be provided on the command line, which will be used when connecting from an RDP client. They can be provided using the `-u` and `-p` command line parameters, respectively. For example: 0008 0009 ``` 0010 krdpserver -u user -p test 0011 ``` 0012 0013 The server will then listen on all interfaces on port 3389, and clients can connect with the username "user" and the password "pass". 0014 0015 # Connecting to the example server 0016 0017 To connect to the server, make sure to pass the username and password the server was started with. 0018 0019 Currently, the main client that has been used for testing and is confirmed to work is the FreeRDP client. Launch the FreeRDP client with the following command: `xfreerdp /u:<username> /p:<password> -clipboard /v:<ip_address>:3389`, filling in the username, password and IP address as appropriate. If testing locally, substitute `localhost` for an IP address. 0020 0021 # Security considerations 0022 0023 In addition, a valid TLS certificate and key are required to encrypt the communication between client and server. The server will look for a file called `server.crt` and `server.key` in the current working directory, but a different path can be provided using the `--certificate` and `--certificate-key` command line parameters. If no valid certificate is found using any of these methods, the server will internally generate a self-signed certificate and use that. 0024 0025 # Command Line Options 0026 0027 The following command line options are available for the example server: 0028 0029 <dl> 0030 <dt>-u, --username <username></dt> 0031 <dd>The username to use when a client tries to login. Required.</dd> 0032 <dt>-p, --password <password></dt> 0033 <dd>The password to require when a client tries to login. Required.</dd> 0034 <dt>--port <port></dt> 0035 <dd>The port to listen on for connections. Defaults to 3389.</dd> 0036 <dt>--certificate <certificate></dt> 0037 <dd>The path to a TLS certificate file to use. If not supplied or it cannot be found a temporary self-signed certificate will be generated.</dd> 0038 <dt>--certificate-key <certificate-key></dt> 0039 <dd>The path to the TLS certificate key that matches the provided certificate.</dd> 0040 <dt>--monitor <monitor></dt>The index of the monitor to use for streaming video. If not supplied the whole workspace is used.</dd> 0041 <dt>--quality <quality></dt> 0042 <dd>Set the video quality, from 0 (lowest) to 100 (highest).</dd> 0043 </dl> 0044 0045 # Known Working and Not-Working Clients 0046 0047 The following clients are known to work with the server: 0048 0049 - XFreeRDP and wlFreeRDP from the FreeRDP project. 0050 - Reminna, a remote desktop client for Gnome. 0051 - Thincast Remote Desktop Client 0052 - Windows Remote Desktop client, at least as shipped with a recent Windows 10. 0053 0054 The following clients are known not to work: 0055 0056 - Krdc, KDE's remote desktop client. While it supports RDP it does not support 0057 the graphics pipeline. 0058 - Microsoft's Remote Desktop client for Android. While it should support H.264 0059 it seems to not enable it. 0060 0061 # Known Issues and Limitations 0062 0063 - Only video streaming and remote input is supported. 0064 - Only the NLA security type of RDP is supported. 0065 - Only one username and password combination is supported for login. 0066 - Only the "Graphics Pipeline" extension of the RDP protocol is 0067 implemented for video streaming. This extension allows using H.264 for video 0068 streaming, but it means only clients supporting that extension are supported. 0069 - H.264 encoding is done using hardware encoding if possible, but currently we 0070 only support using VAAPI for this. Most notably this means hardware encoding on 0071 NVidia hardware can not be used and software encoding will be used instead. 0072 Additionally, on certain hardware there are limits to what size of frame can be 0073 encoded by the hardware. In both cases, encoding will fall back to software 0074 encoding. 0075 - KDE's implementation of the Remote Desktop portal is rather limited as 0076 shipped with Plasma 5.27. Most notably it does not allow selecting which screen 0077 to stream, nor does it have an option to remember the setup and reuse it when 0078 the same application requests a new connection. As a workaround, the server 0079 will open a remote desktop session on startup and reuse that session for all 0080 RDP connections. Additionally, monitor selection can be done using the 0081 `--monitor` command line option. 0082 - Input on a high DPI screen may be offset incorrectly. This is due to a bug in 0083 the Remote Desktop Portal that has been fixed in the meantime. The fix will be 0084 released with KDE Plasma 5.27.8.