I always struggle with setting up xRDP properly, I always forget how to configure the Polkit rules properly to not get all the annoying password popups and getting the default theme to work.
Installing xRDP
The installation process is really straight forward.
bash
sudo apt install xrdpChecking the status with systemctl:
bash
sudo systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2025-05-13 10:30:34 CEST; 3min 22s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Process: 779 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
Process: 790 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 816 (xrdp)
Tasks: 2 (limit: 19077)
Memory: 21.2M
CPU: 9.122s
CGroup: /system.slice/xrdp.service
├─ 816 /usr/sbin/xrdp
└─3621 /usr/sbin/xrdp
...[snip]...And making sure it’s ‘enabled’ with systemctl:
bash
sudo systemctl enable xrdp
Synchronizing state of xrdp.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable xrdpAt this point we should be able to RDP to the machine.
Polkit Rules
Now let’s configure the Polkit rules to get rid of the password popups:
bash
sudo bash -c "cat >/etc/polkit-1/localauthority/50-local.d/45-allow.colord.pkla" <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOFAnd also add a Polkit rule to allow package updates:
bash
sudo bash -c "cat >/etc/polkit-1/localauthority/50-local.d/46-allow-update-repo.pkla" <<EOF
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh;org.freedesktop.packagekit.system-network-proxy-configure
ResultAny=yes
ResultInactive=yes
ResultActive=yes
EOFDefault Theme
Now let’s configure the default theme:
bash
# Backup the file before modifying it
sudo cp /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.bak
sudo sed -i "4 a # Set default theme\ncat <<EOF > ~/.xsessionrc\nexport GNOME_SHELL_SESSION_MODE=$GNOME_SHELL_SESSION_MODE\nexport XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP\nexport XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS\nEOF\n" /etc/xrdp/startwm.shNow make sure to logout and login again to see the changes.