Run Openbox with gnome-session the proper way, without using the deprecated gnome-wm.
See https://bugzilla.gnome.org/show_bug.cgi?id=555406#c5 Hopefully this continues to work for a while.
This commit is contained in:
parent
231f694bca
commit
7e6ef2683f
1 changed files with 31 additions and 9 deletions
|
@ -18,20 +18,42 @@ VER=$(gnome-session --version 2>/dev/null | \
|
|||
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"
|
||||
# run GNOME with Openbox as its window manager
|
||||
|
||||
if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then
|
||||
# old gnome-session allows multiple sessions to be saved
|
||||
# old gnome-session was easy to work with
|
||||
export WINDOW_MANAGER="@bindir@/openbox"
|
||||
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 requires openbox to be set in gconf and an
|
||||
# openbox.desktop to be installed in the applications directory
|
||||
|
||||
# new gnome-session does not allow multiple sessions
|
||||
exec gnome-session "$@"
|
||||
SPATH=/desktop/gnome/session
|
||||
|
||||
# get the current default session
|
||||
SESSION=$(gconftool-2 -g $SPATH/default_session 2> /dev/null)
|
||||
|
||||
# make sure openbox is going to be run
|
||||
if test -z "$SESSION"; then
|
||||
# if its empty then just run openbox
|
||||
SESSION="[openbox]"
|
||||
elif test -z $(echo "$SESSION" | grep -q openbox); then
|
||||
# if openbox isn't in the session then append it
|
||||
SESSION="${SESSION%]},openbox]"
|
||||
fi
|
||||
|
||||
# get the current GNOME/Openbox session
|
||||
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
|
||||
# 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
|
||||
fi
|
||||
|
||||
# run GNOME/Openbox
|
||||
exec gnome-session --default-session-key $SPATH/openbox_session "$@"
|
||||
fi
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue