Revision as of 20:37, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "<code ini>" to "<syntaxhighlight lang="ini">")

Archive:Getting Started/Run/Nested Session


Nested KDE 4 Session


Instead of using a full-blown new X session for developing software you can use Xephyr to run your development build of KDE 4 in a session parallell to your normal working session.

You can also do this with xnest, but as xnest cannot handle extensions like Render many people prefer Xephyr.

In some cases Xephyr/xnest will make the keyboard not work correctly because of bug:19365. The workaround is to run KDE on a standalone X as described below.

Assuming you setup your build enviroment following the instructions in Getting_Started/Build/Environment, simply put the following script in ~/kde/src/run_kde_nested.

  1. !/bin/bash

Xephyr :1 -screen 1024x768 & sleep 3 export DISPLAY=:1 dbus-launch $KDEDIR/bin/startkde And make this file executable. Entering the ~/kde/src directory should setup the required enviroment variables, so do that before running the script.

You can also use Xephyr with KDM via the Xdmcp protocol and simply a new KDE 4 session to KDM.

On Kubuntu, you can enable it by changing

<syntaxhighlight lang="ini"> [Xdmcp]

  1. Whether KDM should listen to incoming XDMCP requests.
  2. Default is true


in /etc/kde3/kdm/kdmrc to

<syntaxhighlight lang="ini"> [Xdmcp]

  1. Whether KDM should listen to incoming XDMCP requests.
  2. Default is true


and adjust your /etc/kde3/kdm/Xaccess to allow your local machine access. Additionally you should make sure to set up a port blocking policy on all external interfaces for the Xdmcp port if you are doing this on a laptop or a PC in an untrusted environment.

If you are done, simply launch Xephyr:

Xephyr -query localhost :1 -host-cursor -screen 1024x768&

where -host-cursor tries to reuse the host's cursor and -screen sets the screen dimensions.

If you get lots of refused connection errors, you might want to use the -ac option of Xephyr. When I tried to launch an application into the Xephyr instance, but I received 3-4 "No protocol specified", after finally saying "could not connect to X Server :1". The below code fixed it for me. It only happens when I am crossing users though, as opposed to doing it all in my main user.

Xephyr -ac :1&

Another option to try if you get lots of refused connection errors is you may need to grant assess to your kde-devel user to your X server. Do that using:

xhost +local:kde-devel

If you do not have Xephyr, you can also use Xnest:

Xnest -ac :1& export DISPLAY=:1

If you run into

"Call to lnusertemp failed (temporary directories full?).
 Check your installation."

try this:

mkdir /var/tmp/kde-devel-kde4

The above code assumes you work with user kde-devel.

Content is available under Creative Commons License SA 4.0 unless otherwise noted.