Skip to main content
  1. Posts/

Arch Linux XRDP KDE

·1 min
linux arch linux
Matt Moore
Author
Matt Moore

xrdp is for connecting remotely to a Linux desktop environment via remote desktop protocol.

Note: You cannot connect via xrdp while also logged in physically to the machine.

Install xrdp and xorgxrdp from AUR:

yay -S xrdp xorgxrdp

Note: This part is easy to miss and important. During install of xrdp and xorgxrdp, you might notice errors about needing to finish installing libs with libtool --finish. These are some of the directories I’ve noticed that needed it:

libtool --finish /usr/lib
libtool --finish /usr/lib/xrdp
libtool --finish /usr/lib/xorg/modules
libtool --finish /usr/lib/xorg/modules/drivers
libtool --finish /usr/lib/xorg/modules/input

If you get issues with TLS/SSL failures, black screen, etc…pay attention to the above.

Enable xrdp and xrdp-sesman:

sudo systemctl enable xrdp xrdp-sesman

Note: Some folks say to add these entries /etc/X11/Xwrapper.config:

allowed_users=anybody
needs_root_rights=no

You can do this, but it’s not recommended (even though the Arch Wiki lists it). Instead, you should change param in /etc/xrdp/sesman.ini:

param=/usr/lib/Xorg

Add this to ~/.xinitrc:

/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11

After editing ~/.xinitrc, chmod +x ~/.xinitrc.

If you encounter authorization errors upon connecting remotely, add the following Policy Kit rule:

/etc/polkit-1/rules.d/45-colord.rules
polkit.addRule(function(action, subject) {
    if ((action.id == "org.freedesktop.color-manager.create-device" ||
         action.id == "org.freedesktop.color-manager.create-profile") &&
        subject.isInGroup("wheel"))
    {
        return polkit.Result.YES;
    }
});

Then, reboot the system:

sudo reboot