--- gnome-session-2.15.90/gnome-session/gnome-session.schemas.in.window-manager 2005-04-26 06:56:50.000000000 -0400 +++ gnome-session-2.15.90/gnome-session/gnome-session.schemas.in 2006-08-10 19:19:11.000000000 -0400 @@ -2,11 +2,22 @@ + /schemas/apps/gnome-session/rh/window_manager + /apps/gnome-session/rh/window_manager + gnome + string + metacity + + Window Manager to start + The Window manager that gnome-session will start. Valid values are "metacity" and "compiz". + + + /schemas/apps/gnome-session/options/show_splash_screen /apps/gnome-session/options/show_splash_screen gnome bool - true + false Show the splash screen Show the splash screen when the session starts up --- gnome-session-2.15.90/gnome-session/gnome-wm.window-manager 2005-07-19 08:44:48.000000000 -0400 +++ gnome-session-2.15.90/gnome-session/gnome-wm 2006-08-11 16:04:59.000000000 -0400 @@ -3,7 +3,9 @@ # The user can specify his prefered WM by setting the WINDOW_MANAGER # environment variable. # -# If this is not set, we search a list of known windowmanagers and use +# If this is not set, we check the /apps/gnome-session/rh/window_manager key +# and go off that. finally, if all else fails we search a list of known +# windowmanagers and use # the first one that is found in the users's PATH # @@ -39,6 +41,10 @@ done # WINDOW_MANAGER overrides all +if [ -z "$WINDOW_MANAGER" ] ; then + WINDOW_MANAGER=$(gconftool-2 --get /apps/gnome-session/rh/window_manager) +fi + OLDIFS=$IFS IFS=":" if [ -z "$WINDOW_MANAGER" ] ; then @@ -67,11 +73,18 @@ fi # Now create options OPT1 and OPT2 based on the windowmanager used OPT1= OPT2= +OPT3= if [ ! -z "$SMID" ] ; then case `basename $WINDOW_MANAGER` in sawfish|sawmill|metacity) OPT1=--sm-client-id=$SMID ;; + compiz) + gnome-window-decorator & + OPT1=--sm-client-id + OPT2=$SMID + OPT3=gconf + ;; openbox) OPT1=--sm-client-id OPT2=$SMID @@ -88,6 +100,6 @@ if [ ! -z "$SMID" ] ; then esac fi -exec $WINDOW_MANAGER $OPT1 $OPT2 +exec $WINDOW_MANAGER $OPT1 $OPT2 $OPT3 echo "ERROR: No window manager could run!"