Archive:Getting Started/Run/Nested Session: Difference between revisions

From KDE TechBase
m (Text replace - "<code bash>" to "<syntaxhighlight lang="bash">")
m (Text replace - "</code>" to "</syntaxhighlight>")
Line 19: Line 19:
export DISPLAY=:1
export DISPLAY=:1
dbus-launch $KDEDIR/bin/startkde
dbus-launch $KDEDIR/bin/startkde
</code>
</syntaxhighlight>
And make this file executable. Entering the {{path|~/kde/src}} directory should setup the required enviroment variables, so do that before running the script.
And make this file executable. Entering the {{path|~/kde/src}} directory should setup the required enviroment variables, so do that before running the script.


Line 31: Line 31:
# Default is true
# Default is true
Enable=false
Enable=false
</code>
</syntaxhighlight>


in {{path|/etc/kde3/kdm/kdmrc}} to
in {{path|/etc/kde3/kdm/kdmrc}} to
Line 40: Line 40:
# Default is true
# Default is true
Enable=true
Enable=true
</code>
</syntaxhighlight>


and adjust your {{path|/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.
and adjust your {{path|/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.

Revision as of 20:44, 29 June 2011


Getting_Started/Run/Nested_Session


Nested KDE 4 Session

Nested

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.

Note
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.

#!/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

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false

in /etc/kde3/kdm/kdmrc to

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=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.

Note
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.