xRDP – Merging custom & standard xrdp install script – Work in Progress

Hello World, 

Following up on one of previous posts, where we were explaining our intention to merge our famous xrdp scripts into a single script, we are pleased to announce that some work has been performed already.  If you follow us for some time now, you probably know that we have been providing some scripts that can help automate and ease the installation of xRDP software solution on Ubuntu machines.  As Ubuntu 20.04 (LTS release) is coming, we want to further improve installation process and we want to maintain a single xRDP installation script.  

This post will provide  a quick view on our progress in creating this consolidated xrdp installation script and provide a quick preview of the possible features and options that would be made available.

So, let’s move to the next section 

Quick Overview

What do we want to achieve ?

As already mentioned, we want to improve a step further our approach and simplify even more the installation process of xRDP package on Ubuntu machines. Currently, we have to maintain 3 different versions of the script which can be time consuming to update and to test and validate against new releases of Ubuntu.  Nowadays, we have to maintain the following version of the scripts 

  • Version 1.9.2  to provide support to Ubuntu 16.04 (which is a LTS version and which is still supported till 2021 !! – long time that has not been updated….)
  • Version 0.6 which is the latest version of the standard installation script which provide support for Ubuntu 18.04 and later 
  • Version 3.0 which the latest version of the custom installation script which provide support for Ubuntu 18.04 and later 

Maintaining these scripts (even if not complex script) take some times as we have to revisit them every 6 months to check that new Ubuntu releases are not breaking stuff. Consolidating into one script would reduce the time needed to update it and to have a standardized code for different Ubuntu versions.

The other reason to merge the scripts is that some people might know the existence of the standard installation script but never heard of the custom installation script.  We want to merge these three scripts into one and offer to the user the possibility to choose which installation method (standard or custom) they want to use.  We want to release this consolidated script (and ready for prime time) for the release of Ubuntu 20.04.   However, as we are progressing faster than foreseen on merging these scripts, a preview version will be probably available with the release of Ubuntu 19.10. Moreover, Ubuntu 19.10 release would be the perfect testing bed for this new version of the script.

Supporting Ubuntu 16.04  

As depicted in the illustration below, the new script will definitely merge the Ubuntu 16.04 “legacy” script version and the two other scripts (Std vs Custom) used to perform installation on Ubuntu 18.04 and later.   


The Ubuntu 16.04 script is considered legacy because the code has not been updated since a long time and does not use the same coding approach.  The code is not integrating the latest findings made when working on the scripts created for Ubuntu 18.04.  Initiating this exercise has forced us to update the code for Ubuntu 16.04 operating system.  We are including support for Ubuntu 16.04 in our script because this is still supported by Canonical. However, we strongly recommend users to upgrade or to use one of the latest releases of Ubuntu as they are including a lot of new features and improvements not found in this “legacy” release. 

The new consolidated script will always perform a custom installation of xRDP when Ubuntu 16.04 version will be detected.  This make sense as the xrdp package available in the Ubuntu repository for Ubuntu 16.04 is pretty old (version 0.6.x) which does not provide clipboard support or drive redirection. 

New parameters/switch usage ?

In the custom and standard installation script for Ubuntu 18.04 and later, it’s possible to pass some parameters to enable some additional features not available by default in xRDP.  The consolidated script uses the same approach but the code has been modified slightly to provide a better way to pass parameters and to provide more options.  The following screenshot shows you (work in progress) the new switches available within the script….. 


Click on picture for better resolution 


As you might have noticed, some new switches have been made available….  The first most important switch would be the following 

--help or -h

This switch will show you the other possible switches that can be used. We might want to provide even more information when this switch is used. We might display on the screen some examples on how to use the script….. 

Another new switch has been made available which is the following 

--loginscreen or -l used to customize xRDP login screen

This switch customize the xRDP login screen (for more information, you can read the following post). When you use this switch, the login screen will look like the one in the screenshot below 


Click on Picture for Better Resolution

Note : There is one limitation at the moment.  you can use this switch only once….We will try to update the script so the script can be run multiple times and would perform the required actions…

As requested multiple times, we are also providing a new switch that will help remove the xRDP package if something goes wrong.  To support this option, we have slightly modified the compilation process.  Indeed, we are now using the check install command when compiling.  This will create an xrdp package and offer then the option to remove it easily through the apt commands

--remove or -r removing xRDP packages

The last new switch that has been added is the custom one 

--custom or -c custom xRDP install (compilation from sources)

If you do not specify this switch, a standard installation will be performed.  However, if you prefer to install xrdp from sources, you will need to pass this parameters in order for the script to know that custom installation is requested.  

Note : With Ubuntu 16.04, the script will always perform a custom installation thus it will ignore the -c switch.  This is only valid for Ubuntu 16.04.x systems..

The following switches are the same ones that were available in the previous versions of the scripts.  You want to enable the sound or you want to use unofficial packages during your standard installation, you will then uses these switches

--sound or -s enable sound redirection in xRDP 
--unofficial or -u use unofficial xRDP packages - patch for U18.04.2

As you can see, we are trying to offer a better experience when using the script.  This is still work in progress and a post presenting the new consolidated script will be made available in order to explain how to use the different switches and how to combine them… As you can see, some work has been already done and we know more or less where we want to go….

Final Notes 

Voila ! This is it for this quick post !  As you can see, we are trying to merge all our previous scripts into one that would be then capable of performing either a standard or custom xrdp installation on Ubuntu 16.04, 18.04,18.10(if still supported by Canonical), Ubuntu 19.04 and hopefully on Ubuntu 19.10 and 20.04.   This is still work in progress !  We still have a lot of stuff to do and we have to ensure that all the switches and their combination leads to the correct expected result. 

The script should be ready for the Ubuntu 19.10 release for sure and we hope that in a near future we can already publish a preview version of the script. Providing a  preview version would help in detecting bugs and possible issues we didn’t think of.  So, get ready as we might need some volunteers willing to test this new version and provide constructive feedback…

Till next time 

See ya 





Leave a Reply