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 parallel 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 work incorrectly because of bug:19365. The workaround is to run KDE on a standalone X as described below.|
Assuming you setup your build environment 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
Make this file executable. Entering the ~/kde/src directory should set up the required environment 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
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 access to your kde-devel user to your X server. Do that using:
If you do not have Xephyr, you can also use Xnest:
Xnest -ac :1& export DISPLAY=:1
You may run into this error:
Call to lnusertemp failed (temporary directories full?) Check your installation."
If so, try this:
The above code assumes you work with user kde-devel.