How to configure XRDP to start cinnamon as default desktop session
Solution 1
Found this on the net, on this url: http://sigkillit.com/tag/xrdp
Customize Desktop Environment for xRDP Session
If you do not want to use the default desktop environment, you can customize it by creating a .Xclients file (X is capital!!!) in your home directory to launch the desktop environment you want and making it executable. In order to do this, open a terminal and run one of the following commands
Gnome 3:
echo "gnome-session" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
Gnome Fallback:
echo "gnome-fallback" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
KDE:
echo "startkde" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
MATE:
echo "mate-session" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
Cinnamon:
echo "cinnamon" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
Xfce4:
echo "startxfce4" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service
Solution 2
You can start the environment you want only for xrdp (not for local login) in /etc/xrdp/startwm.sh
For example, to start xfce, I use:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
# default (= ubuntu)
#. /etc/X11/Xsession
# unity 2d
#echo "gnome-session --session=ubuntu-2d" > ~/.xsession
#. /etc/X11/Xsession
# xfce
startxfce4
exit(0)
Commented out, you can see the commands to start unity (ubuntu session) and unity 2d. You only need to comment out xfce command and add the command to start Cinnamon (I didn't give it because I don't know how to start it manually).
Obs: I agree with you xrdp works better than others remote desktop viewers I tried and it works very well with xfce. I use it from other linux machines too with Remmina client.
To use it with xfce, you need to install xubuntu-desktop (sudo apt-get install xubuntu-desktop
)
Solution 3
If you're using Lubuntu Desktop (tested on 12.04 LTS)
-
For lx syntax discovery:
ps aux | grep lx
-
Implementing lx syntax:
echo "lxsession -s Lubuntu -e LXDE" > ~/.xsession sudo service xrdp restart
Solution 4
First you should have cinnamon on your system :)
Second issue the commands
echo "cinnamon" > ~/.xsession
sudo service xrdp restart
OR if you like to do it hard:) do the following:
Edit the file
/etc/xrdp/startwm.sh
sudo -H gedit /etc/xrdp/startwm.sh
At the end of the file you will find the following lines:
pre_start wm_start post_start
These are calls to functions above. So in order to make cinnamon the default just put
#
beforewm_start
to comment it (to stop calling the function which searches for the sessions)Add the following line in front of the above three lines
gnome-session --session=cinnamon
restart xrdp
sudo service xrdp restart
Solution 5
For LXDE:
Install lxde-common:
sudo apt-get install lxde-common
Make changes in
/etc/xrdp/startwm.sh
like this:#!/bin/sh if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE fi #. /etc/X11/Xsession startlxde
Related videos on Youtube
Jeff
Updated on September 18, 2022Comments
-
Jeff over 1 year
I was wondering if there is a way to make Cinnamon 1.4 the default environment upon logging in to Ubuntu 12.04. I can install Cinnamon 1.4 without any problems, but I am trying to run XRDP to log in from a Windows machine and would like it to start "Cinnamon session" instead of a Unity session by default.
The question is, How can I tell XRDP to use Cinnamon instead of Unity upon logging in?
XRDP seems to work much better than any VNC based servers.
-
Reinier Post almost 10 yearsBy the way, xrdp runs a VNC server.
-
-
Alex over 10 yearsThanks! Even after messing with .xsession etc, none of it worked. I needed a .Xclients file it seems. This was on Fedora 19.
-
Frank Nocke about 8 yearsThe .Xclients file is truly empty? Just created
touch ~/.Xclients
? -
cfinley almost 7 yearsThis also works for me on CentOS 7. I've tried many other techniques with no success until this.
-
Matthias W. almost 6 yearsUse "cinnamon-session" instead of "cinnamon" to be written to ~/.xsession.
-
Musa Haidari over 5 yearsThis seems to be perfect, however on CentOS 7.6 this file does not exist
-
PLA over 5 years
ls /user/share/xessions
should bels /usr/share/xessions
-
Jarad Downing almost 5 years@PLA is almost correct, is should be
/usr/share/xsessions
-
andrew lorien over 4 yearsor for KDE, echo '/usr/bin/startkde' > ~/.xsession
-
Martin Hansen over 3 yearsThis does not work for Ubuntu 20.04 anymore. The .Xclients file is completely ignored, no matter what's in there. What worked for me was:
echo startxfce4 > ~/.xsession
. This example is for Xfce, adjust accordingly if you use a different desktop environment. -
Martin Hansen over 3 yearsFor Cinnamon, it's
echo cinnamon-session-cinnamon > ~/.xsession
. The command for your desktop environment that needs to be run in .xsession can be found in/usr/share/xsessions
. Each installed DE should have its own .desktop file in this folder that contains the start command in theExec=
line. -
Admin almost 2 yearsYour are incorrect. I have no points to downvote. systemctl is part of systemd and it is nothing to do with Fedora. systemd is used in Debian/Ubuntu.