diff -up openbox-3.4.8/data/xsession/openbox-gnome-session.in.gnomesession openbox-3.4.8/data/xsession/openbox-gnome-session.in --- openbox-3.4.8/data/xsession/openbox-gnome-session.in.gnomesession 2009-12-10 14:14:13.000000000 +0100 +++ openbox-3.4.8/data/xsession/openbox-gnome-session.in 2009-12-10 14:15:29.000000000 +0100 @@ -10,27 +10,13 @@ fi # Clean up after GDM xprop -root -remove _NET_NUMBER_OF_DESKTOPS -remove _NET_DESKTOP_NAMES -remove _NET_CURRENT_DESKTOP 2> /dev/null -VER=$(gnome-session --version 2>/dev/null | \ - sed -e 's/[^0-9.]*\([0-9.]\+\)/\1/') - -MAJOR=$(echo $VER | cut -d . -f 1) -MINOR=$(echo $VER | cut -d . -f 2) - # Run GNOME with Openbox as its window manager -export WINDOW_MANAGER="@bindir@/openbox" - -if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then - # old gnome-session allows multiple sessions to be saved - exec gnome-session --choose-session=openbox-session "$@" -else - # make sure the gnome-wm script is being used - gconftool-2 -t string \ - -s /desktop/gnome/session/required_components/windowmanager "gnome-wm" \ - 2> /dev/null - - # new gnome-session does not allow multiple sessions - exec gnome-session "$@" -fi - - +SESSION=$(gconftool-2 -g /desktop/gnome/session/default_session 2> /dev/null) +test -z "$SESSION" && SESSION="[openbox]" +echo "$SESSION" | grep -q openbox || SESSION="${SESSION%]},openbox]" + +OPENBOX_SESSION=$(gconftool-2 -g /desktop/gnome/session/openbox_session 2> /dev/null) +[ "$SESSION" != "$OPENBOX_SESSION" ] && gconftool-2 -t list --list-type=strings -s \ + /desktop/gnome/session/openbox_session "$SESSION" 2> /dev/null +exec gnome-session --default-session-key /desktop/gnome/session/openbox_session "$@"