gnome-session/gnome

212 lines
6.5 KiB
Bash

#!/bin/bash
#
# This is not the original gnome2-session but a startscript
# to install some preconfiguration for GNOME2
# and some variables to check.
#
# For feedback on this script please see
# http://www.suse.de/feedback
#
# set a background until the gnome-session becomes visible
#xsetroot -cursor_name watch -solid "#6a83be"
#
# Help GNOME2 guessing where KDE resides on the filesystem
export KDEDIR=/opt/kde3
#
# We use a cascaded KDE configuration while in GNOME,
# to preconfigure some utilities better suited for GNOME
export KDEDIRS=/opt/gnome/share/dist/kde-preconf
#
#
# Manage GTK1 themes with gnome-theme-manager
export GTK_RC_FILES=/etc/opt/gnome/gtk/gtkrc:$HOME/.gtkrc-1.2-gnome2
#
# Set STYLE variable for other applications.
STYLE="$(gconftool-2 --get /desktop/gnome/interface/gtk_theme 2>/dev/null)"
export STYLE="${STYLE:-Default}"
#
#
# If gconfd 1 is still running, shut it down now
if [ -e /opt/gnome/bin/gconftool-1 ]
then
/opt/gnome/bin/gconftool-1 --shutdown
fi
#
#
# make sure .skel is available
mkdir -p $HOME/.skel
#
# use_gnome2_default_no_settings: Same as use_gnome2_default without
# the wallpaper and fonts
function use_gnome2_default_no_settings {
# do this only one time
[ -e $HOME/.skel/gnome2-run ] && return
# run possibly available addon-scripts
if [ -d /opt/gnome/share/dist/addon-scripts ] ; then
for scr in /opt/gnome/share/dist/addon-scripts/*; do
[ -r "$scr" ] && . "$scr"
done
fi
#
# add compatibility and default settings for GNOME1
# (set help browsers to epiphany & nautilus)
if [ ! -d ~/.gnome ] ; then
mkdir -p ~/.gnome
cp /opt/gnome/share/dist/gnome1/* ~/.gnome/
fi
if [ ! -e ~/.gtkrc ] ; then
cp /opt/gnome/share/dist/gnome1/gtkrc ~/.gtkrc
fi
# we are done, set the flag
touch ~/.skel/gnome2-run
}
#
#
# use_gnome2_default: if the default preconfiguration is used,
# some modifications need to be done to setup correct wallpapers
#
function use_gnome2_default {
# do this only one time
[ -e $HOME/.skel/gnome2-run ] && return
# and only if no wallpaper is already set (or other background
# option)
[ -e $HOME/.gconf/desktop/gnome/background/%gconf.xml ] && return
mkdir -p ~/.gconf/desktop/gnome/background
# determine X-Resolution
X=$(xdpyinfo |grep dimensions:|head -1|cut -d " " -f 7 |cut -d "x" -f 1)
Y=$(xdpyinfo |grep dimensions:|head -1|cut -d " " -f 7 |cut -d "x" -f 2)
# set default wallpaper to 1600x1200
GNOME_WALLPAPER="default-1600x1200.jpg"
[ $((($X * 10) / $Y)) -ge 15 ] && GNOME_WALLPAPER="default-1920x1200.jpg"
GNOME_WALLPAPER="/usr/share/wallpapers/"$GNOME_WALLPAPER
# check if a wallpaper is actually available
if [ -e $GNOME_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
# run possibly available addon-scripts
if [ -d /opt/gnome/share/dist/addon-scripts ] ; then
for scr in /opt/gnome/share/dist/addon-scripts/*; do
[ -r "$scr" ] && . "$scr"
done
fi
#
# add compatibility and default settings for GNOME1
# (set help browsers to epiphany & nautilus)
if [ ! -d ~/.gnome ] ; then
mkdir -p ~/.gnome
cp /opt/gnome/share/dist/gnome1/* ~/.gnome/
fi
if [ ! -e ~/.gtkrc ] ; then
cp /opt/gnome/share/dist/gnome1/gtkrc ~/.gtkrc
fi
# we are done, set the flag
touch ~/.skel/gnome2-run
}
function fix_wallpapers_on_update {
# we do that only the first time
[ -e $HOME/.skel/gnome2-run-9.2 ] && return
# we change to the new distribution wallpapers
# if the 9.1 generation wallpapers are no longer
# available
WALLPAPER=$(gconftool-2 -g /desktop/gnome/background/picture_filename)
WALLPAPER=$(echo $WALLPAPER | cut -b -30)
if [ $WALLPAPER="/usr/share/wallpapers/suse9.1-" ] ; then
# determine X-Resolution
X=$(xdpyinfo |grep dimensions:|cut -d " " -f 7 |cut -d "x" -f 1)
# if no config fits, use 1024x768
GNOME_WALLPAPER="suse10-1027x768.jpg"
[ $X -gt 799 ] && GNOME_WALLPAPER="suse10-800x600.jpg"
[ $X -gt 1023 ] && GNOME_WALLPAPER="suse10-1024x768.jpg"
[ $X -gt 1279 ] && GNOME_WALLPAPER="suse10-1280x1024.jpg"
[ $X -gt 1399 ] && GNOME_WALLPAPER="suse10-1400x1050.jpg"
[ $X -gt 1599 ] && GNOME_WALLPAPER="suse10-1600x1200.jpg"
GNOME_WALLPAPER="/usr/share/wallpapers/"$GNOME_WALLPAPER
# check if a wallpaper is actually available
if [ -e $GNOME_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
# done, set the flag
touch ~/.skel/gnome2-run-9.2
}
function use_sled10_default {
# do this only for SLED 10
([ -e /etc/SuSE-release ] && grep "SUSE Linux Enterprise Desktop 10" /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
}
# set up an arbitrary icon path for nautilus, accessing YaST Icons and, if installed, common KDE icons
KDE_CRYSTAL_32=/opt/kde3/share/icons/crystalsvg/32x32
KDE_CRYSTAL_48=/opt/kde3/share/icons/crystalsvg/48x48
GNOME_DEFAULT_32=/opt/gnome/share/icons/gnome/32x32
GNOME_DEFAULT_48=/opt/gnome/share/icons/gnome/48x48
YAST_ICONS=/usr/share/YaST2/theme/current/icons/48x48
export GNOME_ICON_PATH=/usr/share/images:$YAST_ICONS/apps:$KDE_CRYSTAL_32/apps:$KDE_CRYSTAL_32/devices:$KDE_CRYSTAL_32/mimetypes:$KDE_CRYSTAL_32/filesystems:$KDE_CRYSTAL_32/actions:$KDE_CRYSTAL_48/apps:$KDE_CRYSTAL_48/devices:$KDE_CRYSTAL_48/mimetypes:$KDE_CRYSTAL_48/filesystems:$KDE_CRYSTAL_48/actions:$GNOME_DEFAULT_48/apps:$GNOME_DEFAULT_32/apps:/opt/gnome/share/pixmaps
# 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
TRY_SLED10=1
if [ ! -e $HOME/.skel/gnome2-run ] || [ -e $HOME/.skel/gnome2-run-9.2 ] ; then
TRY_SLED10=0
fi
fix_wallpapers_on_update
use_gnome2_default
if [ $TRY_SLED10 -gt 0 ] ; then
use_sled10_default
else
touch ~/.skel/sled10-run
fi
exec /opt/gnome/bin/gnome-session