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)
|
MAJOR=$(echo $VER | cut -d . -f 1)
|
||||||
MINOR=$(echo $VER | cut -d . -f 2)
|
MINOR=$(echo $VER | cut -d . -f 2)
|
||||||
|
|
||||||
# Run GNOME with Openbox as its window manager
|
# 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
|
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 "$@"
|
exec gnome-session --choose-session=openbox-session "$@"
|
||||||
else
|
else
|
||||||
# make sure the gnome-wm script is being used
|
# new gnome-session requires openbox to be set in gconf and an
|
||||||
gconftool-2 -t string \
|
# openbox.desktop to be installed in the applications directory
|
||||||
-s /desktop/gnome/session/required_components/windowmanager "gnome-wm" \
|
|
||||||
2> /dev/null
|
|
||||||
|
|
||||||
# new gnome-session does not allow multiple sessions
|
SPATH=/desktop/gnome/session
|
||||||
exec 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
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue