Dual Desktop: KDE and Gnome

Im running openSUSE Tumbleweed with KDE 4.7.0 and i want to install Gnome3 as a second desktop option at login menu, for me to explore and learn. I know the Gnome 3 repo is this [Index of /repositories/GNOME:/STABLE:/3.0/openSUSE_11.4](http://download.opensuse.org/repositories/GNOME:/STABLE:/3.0/openSUSE_11.4/) and the apps repo exists as well Index of /repositories/GNOME:/Apps/openSUSE_11.4+GNOME_STABLE_3.0
I dont use network manager for my internet connection because i own a router and i use ifup with dhcp4. To install it i just add the repos and run zypper dup ? or are there any other settings to adjust so i don`t end up with a broken system(regarding to the kdm service that starts KDE, i suspect that a gdm daemon will be created as well…) ?

If you are running Tumbleweed, you need to use the relevant Tumbleweed repos - see Index of /repositories/openSUSE:/Tumbleweed:/GNOME/openSUSE_Tumbleweed

It’s probably not something I would do, but there we are.

Add the repo and use the package switcher in software management would be the way to go, if you must.

john_hudson: thank you i did not found that first time looking :slight_smile:

caf4926: why not ?

*Because experience tells me it’s likely to be both complicated and risky. Especially considering the info provided about your installation. (I’m not saying it can’t be done though)
*And because I have the space, I’d just create a partition for pure gnome 3

Consider making / keeping backups of your important files.
Partition your HD if you can and make separate installations.
Keep a default installation of 11.4 for everyday business use and separate the development and testing versions to partitions.

But of course, if none of the above matters and you can throw all caution to the wind. Go ahead and enjoy.

Like another ext4 partition that will have gnome on it ?
Im aware of the risks thats why i`m asking for an advice from the forums users about this. Thank you for the advices until now .

Like another ext4 partition that will have gnome on it ?
Yes indeed, that is what I mean.

Ok, thank you for all of your advices :slight_smile:

While there’s certainly no harm in putting GNOME on a separate partition, I’ve run both KDE and GNOME side by side for years. I choose what desktop to log into using the Session Type option. I have at different points used separate KDE and GNOME users (especially in the transition from KDE 3.x to 4.x!), but I don’t know that I’ve ever run into a substantive issue regardless of configuration.

I was thinking of using chroot, is that a good option ?
MMcCallister: what about the daemon kdm that starts when the system is booted? wont that be affected ? wont a gdm like daemon be started too?

After reading this thread, seeing the pros and cons i think i have an idea on how to avoid system mix up when havin` Gnome and KDE installed under the same partition.
As a kde user when i boot openSUSE i can see that service kdm starts and after it the login prompt appears in order for me to login, with username and
password. My idea on this is to start the DE service daemon manually using sudo.
After looking in System Services (Runlevel) i have found 2 services:

  1. kde ksysguardd - what role does it have ?
  2. xdm - X Display Manager that starts in runlevel 5 (i suppose this starts KDE for me)
    When doing pico xdm inside /etc/init.d/ i can see that the program is looking for DE`s to start:
......
XDMDIR=/etc/X11/xdm   
if  -x /usr/bin/xdm ]; then
  XDM_BIN=/usr/bin/xdm
else
  XDM_BIN=/usr/X11R6/bin/xdm
fi      
if  -x /usr/sbin/gdm ]; then
  GDM_BIN=/usr/sbin/gdm
else
  GDM_BIN=/opt/gnome/sbin/gdm
fi
KDM_BIN=/opt/kde3/bin/kdm
KDM4_BIN=/usr/bin/kdm
WDM_BIN=/usr/bin/wdm
SLIM_BIN=/usr/bin/slim
LXDM_BIN=/usr/bin/lxdm
......

I`m not much of a programmer but i wonder if is possible to create a second xdm file that will start only gnome 2 or 3 named lets say xdm-gnome, without the lines that searches after KDE ? For this i need the name of
the Gnome service daemon (like mine for KDE is kdm) if this is different under Gnome 2 or 3. Inside the first xdm file named lets say xdm-kde, i was thinking to delete the lines for gdm(Gnome).
I did scrolled the entire file, but i want to be sure that i did not missed anything, can someone tell me exactly what to remove from it to stop xdm to search for kdm(KDE) and what lines to remove to stop xdm to look after gdm(Gnome2/3).
What do you guys think about this ?
PS: of course that a backup of xdm will also exist :slight_smile:

Here is the content of my xdm file:

#! /bin/bash
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Florian La Roche, 1996
#	  Werner Fink <werner@suse.de>, 1996,98,99
#         Martin Scherbaum, 1997
#         Reinhard Max <max@suse.de>, 1997
#
# Please send feedback to [Portal:Distribution - openSUSE](http://www.suse.de/feedback)
#
# /etc/init.d/xdm
#
### BEGIN INIT INFO
# Provides:          xdm
# Required-Start:    $remote_fs dbus
# Required-Stop:     $remote_fs
# Should-Start: ypbind $syslog gpm firstboot kbd resmgr earlyxdm winbind acpid
# Should-Stop:  ypbind $syslog gpm firstboot kbd resmgr earlyxdm winbind acpid
# Default-Start:     5
# Default-Stop:
# Description:       X Display Manager
### END INIT INFO

. /etc/rc.status
. /etc/sysconfig/displaymanager
. /etc/sysconfig/language
. /etc/sysconfig/windowmanager
test -e /etc/SuSEconfig/profile        && . /etc/SuSEconfig/profile
test -r /etc/profile.d/desktop-data.sh && . /etc/profile.d/desktop-data.sh

locale_vars="     \
LANG              \
LC_CTYPE          \
LC_NUMERIC        \
LC_TIME           \
LC_COLLATE        \
LC_MONETARY       \
LC_MESSAGES       \
LC_PAPER          \
LC_NAME           \
LC_ADDRESS        \
LC_TELEPHONE      \
LC_MEASUREMENT    \
LC_IDENTIFICATION \
LC_ALL"

unset LC_ALL
for lc in $locale_vars
do
    eval val="\$RC_$lc"
    if test -n "$val"; then
        eval $lc="\$RC_$lc"
        export $lc
    fi
done
unset lc val

if test -z "$WINDOWMANAGER" ; then
    SAVEPATH=$PATH
    PATH=$PATH:/usr/X11R6/bin:/usr/openwin/bin
    desktop=/usr/share/xsessions/${DEFAULT_WM}.desktop
    if test -s "$desktop" ; then
        while read -r line; do
            case ${line} in
            Exec=*) WINDOWMANAGER="$(command -v ${line#Exec=})"
                    break
            esac
        done < $desktop
    fi
    if test -n "$DEFAULT_WM" -a -z "$WINDOWMANAGER" ; then
        WINDOWMANAGER="$(command -v ${DEFAULT_WM##*/})"
    fi
    PATH=$SAVEPATH
    unset SAVEPATH desktop
fi
unset DEFAULT_WM
export WINDOWMANAGER

XDM_PIDFILE="/var/run/xdm.pid"
KDM_PIDFILE="/var/run/kdm.pid"
GDM_PIDFILE="/var/run/gdm.pid"
SLIM_PIDFILE="/var/run/slim.lock"
LXDM_PIDFILE="/var/run/lxdm.pid"
ENTRANCE_PIDFILE="/var/run/entrance.pid"
PIDFILE=$XDM_PIDFILE
KDEROOTHOME=/root/.kdm
export KDEROOTHOME
XDMDIR=/etc/X11/xdm
if  -x /usr/bin/xdm ]; then
  XDM_BIN=/usr/bin/xdm
else
  XDM_BIN=/usr/X11R6/bin/xdm
fi
if  -x /usr/sbin/gdm ]; then
  GDM_BIN=/usr/sbin/gdm
else
  GDM_BIN=/opt/gnome/sbin/gdm
fi
KDM_BIN=/opt/kde3/bin/kdm
KDM4_BIN=/usr/bin/kdm
WDM_BIN=/usr/bin/wdm
SLIM_BIN=/usr/bin/slim
LXDM_BIN=/usr/bin/lxdm
ENTRANCE_BIN=/usr/sbin/entranced
RELOADSIGNAL="-HUP"

DM=${DISPLAYMANAGER##*/}

case "${DM}" in
    kdm3)		 DISPLAYMANAGER=$KDM_BIN
			 PIDFILE=$KDM_PIDFILE
			 ;;
    kdm|kde|KDM|KDE)	 DISPLAYMANAGER=$KDM_BIN
			 if  ! -r "$DISPLAYMANAGER" ]; then
				DISPLAYMANAGER=$KDM4_BIN
			 fi
			 PIDFILE=$KDM_PIDFILE
			 ;;
    kdm4)                DISPLAYMANAGER=$KDM4_BIN
			 PIDFILE=$KDM_PIDFILE
			 ;;
    xdm)		 DISPLAYMANAGER=$XDM_BIN
			 ;;
    gdm|GDM|Gnome|GNOME) DISPLAYMANAGER=$GDM_BIN
			 PIDFILE=$GDM_PIDFILE
			 RELOADSIGNAL="-USR1"
			 ;;
    wdm|WDM)		 DISPLAYMANAGER=$WDM_BIN
			 ;;
    slim|SLIM)		 DISPLAYMANAGER=$SLIM_BIN
			 XDMOPTIONS=-d
			 PIDFILE=$SLIM_PIDFILE
			 ;;
    lxdm|LXDM)		 DISPLAYMANAGER=$LXDM_BIN
			 XDMOPTIONS=-d
			 PIDFILE=$LXDM_PIDFILE
			 ;;
    entrance)
			 DISPLAYMANAGER=$ENTRANCE_BIN
			 PIDFILE=$ENTRANCE_PIDFILE
			 ;;
    console)		 exit 0
			 ;;
    *)			 DISPLAYMANAGER=$XDM_BIN
			 if test -x $KDM_BIN; then
				DISPLAYMANAGER=$KDM_BIN
				PIDFILE=$KDM_PIDFILE
			 elif test -x $KDM4_BIN; then
				DISPLAYMANAGER=$KDM4_BIN
				PIDFILE=$KDM_PIDFILE
			 fi 
			 ;;
esac
test ! -x "$DISPLAYMANAGER" && DISPLAYMANAGER=$XDM_BIN

rc_reset

splashcopy()
{
    local from=$1
    local to=$2
    if  "$SPLASH" = yes ]
    then
	ver=$(sed "s/.*v\(:digit:]]\)\.\(:digit:]]\).*/\\1\\2/" /proc/splash)
	if  $ver -gt 31 ]
	then
	    echo "copy $from $to" > /proc/splash
	    echo "@$to silent" > /proc/splash
	    echo "@$to show -1" > /proc/splash
	fi
    fi
}

case "$1" in
    start)
	if  "$DISPLAYMANAGER" = "$KDM4_BIN" ] \
	    ||  "$DISPLAYMANAGER" = "$GDM_BIN" ]; then
	    splashcopy 0 6
	fi
        # Avoid duplicated messages when earlyxdm is in use
	if  "$DISPLAYMANAGER" = "$KDM_BIN" -a -s $KDM_PIDFILE ]; then
	   /sbin/checkproc -p $KDM_PIDFILE $KDM_BIN && rc_exit 0
	elif  "$DISPLAYMANAGER" = "$KDM4_BIN" -a -s $KDM_PIDFILE ]; then
	   /sbin/checkproc -p $KDM_PIDFILE $KDM4_BIN && rc_exit 0
	elif  "$DISPLAYMANAGER" = "$GDM_BIN" -a -s $GDM_PIDFILE ]; then
	   /sbin/checkproc -p $GDM_PIDFILE $GDM_BIN && rc_exit 0
	elif  "$DISPLAYMANAGER" = "$ENTRANCE_BIN" -a -s $ENTRANCE_PIDFILE ]; then
	   /sbin/checkproc -p $ENTRANCE_PIDFILE $ENTRANCE_BIN && rc_exit 0
	fi

        if  "$DISPLAYMANAGER" != "$KDM_BIN" -a \
             "$DISPLAYMANAGER" != "$KDM4_BIN" -a \
             "$DISPLAYMANAGER" != "$ENTRANCE_BIN" -a \
             "$DISPLAYMANAGER" != "$GDM_BIN" ]; then
           test -x /etc/X11/xdm/SuSEconfig.xdm && \
           MD5DIR="/var/adm/SuSEconfig/md5" \
              /etc/X11/xdm/SuSEconfig.xdm | \
              sed 's+\(.*\)+/etc/init.d/xdm: \1+g' | \
              /bin/logger
        fi        

	# use system keyboard as global X keyboard configuration
	if  -x /etc/X11/xdm/keytable ]; then
	   /etc/X11/xdm/keytable
	fi

	echo -n "Starting service $DM"
	# Don't start xdm if no Xserver is configured and xdm is not 
	# configured for remote access 
	if  ! -x /usr/bin/X -a ! -x /usr/X11R6/bin/X -a \
		"$DISPLAYMANAGER_REMOTE_ACCESS" = "no" ]; then 
			rc_status -u 
			rc_exit 
	fi
	if  "$DISPLAYMANAGER" = "$GDM_BIN" -a \
		 "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes"  -a \
		 "$DISPLAYMANAGER_STARTS_XSERVER" = "no" ]; then
		XDMOPTIONS="--no-console"
	fi
	# Graphical failsafe mode (Bug #246158).
	#
	# Needs changes in kernel commandline of "Failsafe" entry in
	# /boot/grub/menu.lst.
	#
	#  * use the same "vga" option value as in the non-"Failsafe" entry
	#  * remove "3" option (runlevel)
	#  * add "x11failsafe" option
	if cat /proc/cmdline | grep -q x11failsafe; then
            if  -f /etc/X11/xorg.conf.install ]; then
		export XORGCONFIG=xorg.conf.install
                echo 
                echo "Using failsafe X.Org configuration /etc/X11/xorg.conf.install"
            else
                echo
                echo "The failsafe X.Org configuration /etc/X11/xorg.conf.install no longer exists."
                echo "Either move it back (if still available) or copy /etc/X11/xorg.conf to"
                echo "/etc/X11/xorg.conf.install to use the native graphics driver instead of the"
                echo "failsafe graphics driver. Of course the latter option no longer can be called"
                echo "failsafe."
                rc_status -u
                rc_exit
            fi
	fi
	startproc -p $PIDFILE $DISPLAYMANAGER $XDMOPTIONS || rc_failed
	# After a crash or a kill signal we may have
	# a wrong owner ship of /dev/xconsole
	if rc_status ; then
	    if test -x $XDMDIR/TakeDevices ; then
		$XDMDIR/TakeDevices
	    else
		chown root:tty /dev/xconsole /dev/tty0
		chmod 622      /dev/xconsole /dev/tty0
	    fi
	else
	    case "${DM}" in
	    slim|SLIM)
		test -s $PIDFILE || pgrep -f $DISPLAYMANAGER > $PIDFILE
	    esac
	fi
	rc_status -v
	;;
    stop)
        # make sure to stop the running one (Bug #306035)
	if test -s "$KDM_PIDFILE"; then
	    PIDFILE=$KDM_PIDFILE
	elif test -s "$GDM_PIDFILE"; then
	    PIDFILE=$GDM_PIDFILE
	elif test -s "$XDM_PIDFILE"; then
	    PIDFILE=$XDM_PIDFILE
	elif test -s "$SLIM_PIDFILE"; then
	    PIDFILE=$SLIM_PIDFILE
	elif test -s "$LXDM_PIDFILE"; then
	    PIDFILE=$LXDM_PIDFILE
	elif test -s "$ENTRANCE_PIDFILE"; then
	    PIDFILE=$ENTRANCE_PIDFILE
	fi
	if test -s $PIDFILE; then
	    read -t 1 PID < $PIDFILE
	    if CHECKDM=$(ps ho command= -p $PID) ; then
		DISPLAYMANAGER=${CHECKDM%%:blank:]]*}
		DM=${DISPLAYMANAGER##*/}
	    fi
	    unset CHECKDM
	else
	    rm -f $PIDFILE
	    unset PIDFILE
	fi
	echo -n "Shutting down service $DM"

	# 
	# killproc(8) sleep upto five seconds and sends
	# SIGKILL if xdm does not terminate within
	#

	killproc ${PIDFILE:+-p ${PIDFILE}} $DISPLAYMANAGER
	rc_status -v
	;;
    restart)
	$0 stop
        $0 start
	rc_status
	;;
    reload|force-reload)
        test -x /etc/X11/xdm/SuSEconfig.xdm && \
        MD5DIR="/var/adm/SuSEconfig/md5" \
          /etc/X11/xdm/SuSEconfig.xdm | \
          sed 's+\(.*\)+/etc/init.d/xdm: \1+g' | \
          /bin/logger
	echo -n "Reload service $DM"
	killproc -p $PIDFILE $RELOADSIGNAL $DISPLAYMANAGER
	rc_status -v
	;;
    status|check)
	echo -n "Checking for service ${DM}: "
	checkproc -p $PIDFILE $DISPLAYMANAGER
	rc_status -v
	;;
    probe)
	if test $XDMDIR/xdm-config -nt $PIDFILE -o \
	        $XDMDIR/Xservers   -nt $PIDFILE
	then
	    echo reload
	fi
	;;
    try-restart|condrestart)
	$0 status
	if test $? = 0; then
	    $0 restart
	else
	    rc_reset
	fi
	rc_status
	;;
    *)
	echo "Usage: $0 {start|stop|status|restart|reload|force-reload|probe|try-restart}"
	exit 1
esac
rc_exit

Well after a few minutes of scrolling the xdm bash code lines again i have decied to give it a go, under Virtual Box using openSUSE 11.4.
So far i have disabled xdm, and created xdm-kde file; i start kde using sudo and xdm-kde. After this, i had installed gnome 2 and used the xdm-gnome file that i have tweaked from the original xdm file but gnome 2 will not start.
So at this point i need an xdm file from a gnome user to delete the lines that regard kdm and to see if an difference exists between his file and mine posted above. Please either posted it here in code tags, or upload the file on a website. I think this is possible to achieve :slight_smile:

Out of curiosity inside virtual box i had installed Gnome 2.30 along side with KDE 4.7.0 using the original XDM file. All has gone well from installation to usage. After i had Gnome 2 installed i did made an reboot to the virtual machine and tested first KDE 4.7.0 and then Gnome2. One thing i did notice: shudown works properly only for KDE for Gnome it`s just loges me out of the session. In my quest and for sure good for others i found a small tutorial for Gnome 3 and KDE here: Installing Gnome 3 over a KDE Based OpenSuse 11.4 Installation – Matthew Casperson’s Blog at the Hubfolio on Bright Hub

After a few days of searching and reading posts on websites, last knight i finally managed to solve the problems that i had with Gnome 3.
My default desktop is KDE 4.7.0 and my second desktop is now Gnome 3; both installed on the same partition with no problems. The only trouble was mainly libgnomekbd that was not upgraded to version 3.0.x by zypper, along with gnome-session.