Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support.
[dana/openbox.git] / data / xsession / openbox-gnome-session.in
index de46bec..f31c9ad 100644 (file)
@@ -21,11 +21,11 @@ MINOR=$(echo $VER | cut -d . -f 2)
 # run GNOME with Openbox as its window manager
 
 if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then
-  # old gnome-session was easy to work with
+  # older gnome-session was easy to work with
   export WINDOW_MANAGER="@bindir@/openbox"
   exec gnome-session --choose-session=openbox-session "$@"
-else
-  # new gnome-session requires openbox to be set in gconf and an
+elif test $MAJOR -lt 3; then
+  # old gnome-session requires openbox to be set in gconf and an
   # openbox.desktop to be installed in the applications directory
 
   SPATH=/desktop/gnome/session
@@ -37,7 +37,7 @@ else
   if test -z "$SESSION"; then
       # if its empty then just run openbox
       SESSION="[openbox]"
-  elif test -z $(echo "$SESSION" | grep -q openbox); then
+  elif ! echo "$SESSION" | grep -q openbox; then
       # if openbox isn't in the session then append it
       SESSION="${SESSION%]},openbox]"
   fi
@@ -46,7 +46,7 @@ else
   OB_SESSION=$(gconftool-2 -g $SPATH/openbox_session 2> /dev/null)
 
   # update the GNOME/Openbox session if needed
-  if x$OB_SESSION != x$SESSION; then
+  if test x$OB_SESSION != x$SESSION; then
       # the default session changed or we didn't run GNOME/Openbox before
       gconftool-2 -t list --list-type=strings -s $SPATH/openbox_session \
         "$SESSION" 2> /dev/null
@@ -54,6 +54,12 @@ else
 
   # run GNOME/Openbox
   exec gnome-session --default-session-key $SPATH/openbox_session "$@"
+else
+  # new gnome-session requires session file installed in
+  # /usr/share/gnome-session/sessions as well as openbox.desktop to be
+  # installed in the applications directory
+
+  exec gnome-session --session=openbox-gnome
 fi