Skip to content
Go back

Install XFCE, LXQt, MATE, Cinnamon, Enlightenment, Gnome, KDE Plasma Desktop Environment with XRDP for Remote Desltop Access on a single Ubuntu Server.

Published:

Install the 7 different Desktop Environment with XRDP in single ubuntu server.

Prerequisites

Before you begin, ensure you have:

  1. An Ubuntu Server instance (e.g., Ubuntu 20.04 LTS or 22.04 LTS) running in the cloud.
  2. SSH access to the server with a user that has sudo privileges.

The Linux GUI Landscape—Desktop Environments

Linux DEs cater to every taste, whether you prioritize eye-candy, low resource usage, or a classic, familiar layout. Below are the top contenders, including the popular KDE Plasma (which Kubuntu uses) and many others.

The Big Four: Power, Style, and Efficiency

Desktop EnvironmentFocus & Key FeatureBest Suited For
KDE PlasmaPower & Customization. Highly modern, feature-rich, and visually stunning. Offers deep control over every aspect of the desktop.Power users, Windows switchers, and anyone who loves to tinker and customize their UI.
GNOMESimplicity & Modernity. A clean, minimalist interface focused on keyboard shortcuts and the “Activities” overview.Users seeking a modern, distraction-free workflow, often found as the default on Ubuntu and Fedora.
CinnamonTraditional Layout & Stability. A classic, comfortable desktop that closely mimics the Windows 7/XP experience.Beginners and Windows switchers who want a familiar, immediate, and highly stable experience (default on Linux Mint).
XFCELightweight & Fast. Extremely resource-friendly and highly stable. It sacrifices some modern visual flair for pure speed.Older hardware, virtual machines (VMs), or users prioritizing speed and low RAM/CPU usage.

The Specialized & Lightweight Options


Install XRDP and XFCE

First, we’ll update the system, install the necessary XRDP service, and then install the XFCE desktop environment.

  1. Update your system packages:

    sudo apt update
    sudo apt upgrade -y
  2. Install the XRDP service:

    sudo apt install xrdp -y
  3. Install the Desktop Environment and Configure: Configure the user’s session: Create or edit the .xsession file in the home directory of the user you will use to connect. This file tells XRDP which desktop to launch.


sudo apt install xfce4 -y 
sudo apt install xubuntu-desktop -y # The full Xubuntu experience.
echo xfce4-session > ~/.xsession
echo startxfce4 > ~/.xsession

output


sudo apt install lxqt -y # The full Lubuntu (now LXQt-based) experience.
sudo apt install lubuntu-desktop -y # The full Lubuntu (now LXQt-based) experience.
echo startlxqt > ~/.xsession

output


sudo apt install ubuntu-mate-desktop -y # The full Ubuntu MATE experience.
sudo apt install mate-desktop-environment -y # A more standard MATE install.
sudo apt install mate-session-manager -y # Installs the core session manager.
echo mate-session > ~/.xsession

output


sudo apt install cinnamon-desktop-environment -y # Standard Cinnamon installation.
sudo apt install cinnamon -y # Installs the core Cinnamon package.
echo cinnamon-session > ~/.xsession

output


sudo apt install enlightenment -y # A unique, lightweight, and fast DE/WM.
echo enlightenment_start > ~/.xsession

output


sudo apt install ubuntu-desktop -y # The full, default Ubuntu experience.
sudo apt install gnome-session # Installs the core session manager.
sudo apt install gnome-core # Installs a minimal GNOME experience.
echo gnome-session > ~/.xsession

output


sudo apt install kubuntu-desktop -y # The full Kubuntu experience.
sudo apt install plasma-desktop # Installs a more basic version of Plasma.
sudo apt install gkde-plasma-desktop # Minimal
echo startplasma-x11 > ~/.xsession

output


  1. Set correct permissions for the .xsession file:

    sudo chown -R $USER:$USER /home/$USER/.xsession
    chmod +x ~/.xsession
  2. Add the XRDP user to the ssl-cert group (essential for secure operation):

    sudo adduser xrdp ssl-cert
  3. Restart the XRDP service to load the new configuration:

    sudo systemctl restart xrdp
  4. Check the Status of display-manager.service

    Systemd uses a generic service unit named display-manager.service which is a symbolic link to the actual Display Manager service installed (e.g., gdm.service, lightdm.service, or sddm.service).

    Run this command to see which DM is active:

    systemctl status display-manager.service
    pgrep -l -f "(gdm|lightdm|sddm|kdm|lxdm)"
    
  5. Set the system to boot into graphical mode by default

After installation, your server is still set to boot into command-line mode (multi-user.target). We need to switch it to boot into the graphical mode (graphical.target).

sudo systemctl set-default graphical.target

Configure the Firewall

The default RDP port is 3389. You must open this port in your server’s firewall to allow incoming connections.

If you are using UFW (Uncomplicated Firewall), run this command:

sudo ufw allow 3389/tcp
sudo ufw enable
sudo ufw reload

(Note: If your cloud provider uses its own firewall rules (Security Groups), you must also ensure port 3389 is open there.)


Connect with an RDP Client

You are now ready to connect! Use your favorite RDP client on your local machine (Windows Remote Desktop Connection, Remmina, KRDC, Microsoft Remote Desktop for Mac, etc.).

SettingValue
Computer/ServerYour server’s public IP address or hostname.
Port3389 (default RDP port).
SessionLeave as default or select “Xorg” if prompted.
Username & PasswordThe credentials of the Ubuntu user you configured.

You should now be presented with a responsive, high-performance XFCE desktop, giving you a full graphical interface on your cloud server without the resource overhead!


Reference

Installation CommandDesktop Environment (DE)~/.xsession Command (Generally Reliable)Notes
sudo apt install ubuntu-desktopGNOME (Standard Ubuntu)exec gnome-sessionThe full, default Ubuntu experience.
sudo apt install gnome-sessionGNOME (Core Session)exec gnome-sessionInstalls the core session manager.
sudo apt install gnome-coreGNOME (Minimal Core)exec gnome-sessionInstalls a minimal GNOME experience.
sudo apt install kubuntu-desktopKDE Plasma (Full Kubuntu)exec startplasma-x11The full Kubuntu experience.
sudo apt install plasma-desktopKDE Plasma (Minimal)exec startplasma-x11Installs a more basic version of Plasma.
sudo apt install kde-plasma-desktopKDE Plasma (Minimal)exec startplasma-x11Similar to plasma-desktop.
sudo apt install xubuntu-desktopXfce (Full Xubuntu)exec startxfce4 or exec xfce4-sessionThe full Xubuntu experience. startxfce4 is usually preferred.
sudo apt install mate-desktop-environmentMATE (Standard)exec mate-sessionA more standard MATE install.
sudo apt install ubuntu-mate-desktopMATE (Full Ubuntu MATE)exec mate-sessionThe full Ubuntu MATE experience.
sudo apt install mate-session-managerMATE (Core Session)exec mate-sessionInstalls the core session manager.
sudo apt install lubuntu-desktopLXQt (Full Lubuntu)exec startlxqtThe full Lubuntu (now LXQt-based) experience.
sudo apt install lxqtLXQt (Minimal)exec startlxqtInstalls the base LXQt environment.
sudo apt install cinnamon-desktop-environmentCinnamon (Standard)exec cinnamon-sessionStandard Cinnamon installation.
sudo apt install enlightenmentEnlightenment (E)exec enlightenment_startA unique, lightweight, and fast DE/WM.
sudo apt install cinnamonCinnamon (Core)exec cinnamon-sessionInstalls the core Cinnamon package.
sudo apt install budgie-desktopBudgieexec budgie-sessionUsed by Ubuntu Budgie.
sudo apt install i3i3 (Tiling Window Manager)exec i3A very popular manual window manager (not a full DE).
sudo apt install openboxOpenbox (Stacking Window Manager)exec openbox-sessionA highly configurable, minimal stacking window manager.

Learn More:

💻 ~/.xinitrc (X-Init RC)


🖥️ ~/.xsession (X-Session)


🎯 Summary Table

Feature~/.xinitrc~/.xsession
TriggerManual start via xinit or startx.Graphical login via a Display Manager (DM).
Core Programxinit (or startx wrapper).System-wide Xsession script (called by the DM).
Typical UseCustom, minimal, or tiling Window Manager setups.Desktop Environment (DE) or custom sessions via DM.

Note: On modern systems and in many distributions (especially Debian-based ones), the system-wide /etc/X11/xinit/xinitrc file often calls the system-wide /etc/X11/Xsession script. This convergence is an attempt to unify the startup process so that your graphical environment is consistent whether you use startx or a Display Manager, often relying more heavily on ~/.xsession for user customization.

1. Check Current Display Manager

You can usually check the currently configured Display Manager using one of these commands:


2. Change the Default Display Manager

The method for changing the DM depends on your Linux distribution:

A. Debian/Ubuntu-based Systems (using dpkg-reconfigure)

If you have multiple DMs installed (e.g., gdm3, lightdm, sddm), you can use the dpkg-reconfigure utility, which will prompt you to select the default one from a list:

  1. Run the command, replacing gdm3 with the name of any installed Display Manager package:
    sudo dpkg-reconfigure gdm3 
    • This will bring up a configuration screen where you can select your preferred DM (e.g., LightDM, SDDM) using the arrow keys and pressing Enter.
  2. Reboot the system for the change to take effect:
    sudo reboot

B. Systemd-based Systems (using systemctl for generic DMs)

On distributions that primarily rely on systemd services (like Arch, Fedora, etc.), you manage the default DM by disabling the old service and enabling the new one. This assumes the new DM is already installed.

  1. Disable the currently enabled DM service (e.g., GDM):
    sudo systemctl disable gdm.service
  2. Enable the new DM service (e.g., LightDM or SDDM):
    sudo systemctl enable lightdm.service 
    # OR
    sudo systemctl enable sddm.service
    • You might need to use the --force flag if an existing display-manager.service symlink needs to be overridden.
  3. Start the new DM, or reboot the system:
    sudo systemctl start lightdm.service
    # OR
    sudo reboot

The Display Manager you choose will typically be responsible for presenting the graphical login screen and launching the selected Desktop Environment (DE), which is why the terms are sometimes confused. Common DMs include GDM (for GNOME), LightDM (for Xfce, LXDE, Unity), and SDDM (for KDE Plasma, LXQt).


Comprehensive List of Linux GUI Desktop Environments

Desktop EnvironmentPrimary FocusBest ForTypical Look/Feel
KDE Plasma (e.g., Kubuntu)Customization & FeaturesUsers who want maximum control, a modern feel, and a massive feature set.Highly modern, Windows-like, with advanced widgets and visual effects.
GNOME (e.g., Ubuntu, Fedora)Modern Simplicity & ProductivityUsers seeking a clean, uncluttered, and modern workflow with minimal distractions.Clean, touch-friendly, uses a unique “Activities” screen for window management.
XFCE (e.g., Xubuntu)Lightweight & StableOlder hardware, virtual machines, or users prioritizing speed and low resource use.Traditional (panel, menu), but highly efficient and theme-able.
Cinnamon (e.g., Linux Mint)Traditional & User-FriendlyWindows switchers who want a familiar, classic desktop metaphor that is stable.Classic Windows-like panel at the bottom with a familiar menu structure.
MATE (e.g., Ubuntu MATE)Traditional GNOME 2 ForkUsers who prefer the older, more efficient, and classic desktop layout of GNOME 2.Classic panel structure, focus on stability and lower resource usage than GNOME 3.
LXQt (e.g., Lubuntu)Ultra-LightweightVery low-spec systems, netbooks, or users who need the absolute minimum of resources.Basic, fast, and simple layout built on the Qt framework.
Budgie (e.g., Ubuntu Budgie)Modern Simplicity & EleganceUsers who want a clean, simple, and aesthetically pleasing desktop with a unique sidebar (Raven).Modern, simple, and minimalist design; highly focused on user experience.
Pantheon (e.g., Elementary OS)Aesthetics & SimplicityUsers seeking a highly curated, macOS-like experience with a focus on simple apps.Extremely elegant, clean, and opinionated design; not highly customizable.
Deepin Desktop Environment (DDE)Visual AppealUsers prioritizing a highly modern, polished, and animated user interface.Stunning visuals, unique control center sidebar, and a prominent dock.
Enlightenment (E)Speed & MinimalismPower users and those on extremely limited hardware who still want some visual flair.Minimalist, but highly configurable with unique animations and effects.

Changing the default Display Manager (DM) in Linux, such as switching from GDM to LightDM or SDDM, is typically done via the command line, especially on systems using systemd or those based on Debian/Ubuntu.


Change the Default Display Manager

The method for changing the DM depends on your Linux distribution:

A. Debian/Ubuntu-based Systems (using dpkg-reconfigure)

If you have multiple DMs installed (e.g., gdm3, lightdm, sddm), you can use the dpkg-reconfigure utility, which will prompt you to select the default one from a list:

  1. Run the command, replacing gdm3 with the name of any installed Display Manager package:
    sudo dpkg-reconfigure gdm3 
    • This will bring up a configuration screen where you can select your preferred DM (e.g., LightDM, SDDM) using the arrow keys and pressing Enter.
  2. Reboot the system for the change to take effect:
    sudo reboot

B. Systemd-based Systems (using systemctl for generic DMs)

On distributions that primarily rely on systemd services (like Arch, Fedora, etc.), you manage the default DM by disabling the old service and enabling the new one. This assumes the new DM is already installed.

  1. Disable the currently enabled DM service (e.g., GDM):
    sudo systemctl disable gdm.service
  2. Enable the new DM service (e.g., LightDM or SDDM):
    sudo systemctl enable lightdm.service 
    # OR
    sudo systemctl enable sddm.service
    • You might need to use the --force flag if an existing display-manager.service symlink needs to be overridden.
  3. Start the new DM, or reboot the system:
    sudo systemctl start lightdm.service
    # OR
    sudo reboot

The Display Manager you choose will typically be responsible for presenting the graphical login screen and launching the selected Desktop Environment (DE), which is why the terms are sometimes confused. Common DMs include GDM (for GNOME), LightDM (for Xfce, LXDE, Unity), and SDDM (for KDE Plasma, LXQt).



Suggest Changes

Previous Post
Multi-Protocol Remote Access – SSH, RDP & node app hosting to Your local linux PC and accessible from Anywhere Using Cloudflare Tunnel
Next Post
Install Nextcloud AIO on Ubuntu with Docker and a Domain