#!/bin/bash
#
# This is not the original gnome-session but a start script
# to install some preconfiguration for GNOME2 
# and some variables to check.
#
# For feedback on this script please use
# https://bugzilla.novell.com/
#

# If user still uses default wallpaper or old wallpaper image does not exist any more, update to default:
OLD_WALLPAPER=$(gconftool-2 --get /desktop/gnome/background/picture_filename 2>/dev/null)
PICTURE_OPTIONS=$(gconftool-2 --get /desktop/gnome/background/picture_options 2>/dev/null)
if [ "$PICTURE_OPTIONS" != "none" -a \(\
     "$OLD_WALLPAPER" != "${OLD_WALLPAPER#/usr/share/wallpapers/default}" -o ! -e "$OLD_WALLPAPER" \) ] ; then

    DIMENSIONS=$(xdpyinfo | sed -n 's/^ *dimensions: *\([^ ]*\) .*$/\1/p')
    X=${DIMENSIONS%x*}
    Y=${DIMENSIONS#*x}
    # Select normal or wide angle wallpaper:
    GNOME_WALLPAPER="default-1600x1200.jpg" 
    [ $((($X * 10) / $Y)) -ge 15 ] && GNOME_WALLPAPER="default-1920x1200.jpg"
    GNOME_WALLPAPER="/usr/share/wallpapers/"$GNOME_WALLPAPER
    if [ -e "$GNOME_WALLPAPER" -a "$GNOME_WALLPAPER" != "$OLD_WALLPAPER" ] ; then
	gconftool-2 -s /desktop/gnome/background/picture_filename --type string $GNOME_WALLPAPER
	gconftool-2 -s /desktop/gnome/background/picture_options --type string stretched
    fi
fi

function use_sled10_default {
    # do this only for SLED 10
    ([ -e /etc/SuSE-release ] && grep "SUSE Linux Enterprise Desktop 11" /etc/SuSE-release) || return 

    # do this only one time
    [ -e $HOME/.skel/sled10-run ] && return

    # dump the existing config for backup
    PANEL_BACKUP=panel-settings-backup-`date '+%m%d%y%H%M%S'`.xml
    gconftool-2 --dump /apps/panel > $PANEL_BACKUP

    # unset the current panel configuration
    gconftool-2 --recursive-unset /apps/panel/default_setup
    gconftool-2 --unset /apps/panel/general/toplevel_id_list
    gconftool-2 --unset /apps/panel/general/applet_id_list
    gconftool-2 --unset /apps/panel/general/object_id_list
    gconftool-2 --recursive-unset /apps/panel/profiles/default
    gconftool-2 --recursive-unset /apps/panel/toplevels
    gconftool-2 --unset /apps/metacity/general/num_workspaces

    # we are done, set the flag
    touch ~/.skel/sled10-run
}

# start up the gnome2 session

# reset the SLED 10 UI only if upgrading from NLD9/SLES9, anything newer we 
# ignore (like SL 9.3), the logic here is redundant but its low risk
# Remove this code after SLED11:
mkdir -p $HOME/.skel
TRY_SLED10=1
if [ ! -e $HOME/.skel/gnome2-run ] || [ -e $HOME/.skel/gnome2-run-9.2 ] ; then
  TRY_SLED10=0
fi

if [ $TRY_SLED10 -gt 0 ] ; then
 use_sled11_default
else
 touch ~/.skel/sled10-run
fi

# Install the online help desktop icon this way until there is
# a better solution.  The actual files reside in gnome2-SuSE
if [ ! -e $HOME/.skel/.gnome2-run-10.3 ] ; then
  touch $HOME/.skel/.gnome2-run-10.3
  mkdir -p ~/Desktop
  cp -u /usr/share/dist/desktop-files/GnomeOnlineHelp.desktop ~/Desktop
  cp -u /usr/share/dist/desktop-files/SuSE.desktop ~/Desktop
fi

# Install the live install desktop icon this way until there is
# a better solution.  The actual files reside in gnome2-SuSE
# the /etc/YaST2/live-install.xml only exists on a live install system
if [ -e /etc/YaST2/live-install.xml ] ; then
  mkdir -p ~/Desktop
  cp -u /usr/share/dist/desktop-files/live-installer.desktop ~/Desktop

# setup live install to not start beagled
  if [ -e /etc/xdg/autostart/beagled-autostart.desktop ] ; then
    mkdir -p ~/.config/autostart
	cp /etc/xdg/autostart/beagled-autostart.desktop ~/.config/autostart
	echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/beagled-autostart.desktop
  fi

# setup live install to not start updater-applet
  if [ -e /usr/share/gnome/autostart/opensuse-updater-applet.desktop ] ; then
    mkdir -p ~/.config/autostart
	cp /usr/share/gnome/autostart/opensuse-updater-applet.desktop ~/.config/autostart
	echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/opensuse-updater-applet.desktop
  fi
fi

# Uncomment after SLED12, remove after SLED14:
#rm -f ~/.skel/gnome2-run ~/.skel/gnome2-run-9.2 ~/.skel/sled10-run

exec /usr/bin/gnome-session
