| 
									
										
										
										
											2015-02-27 00:58:55 +00:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # fix broken $UID on some system... | 
					
						
							|  |  |  | if test "x$UID" = "x"; then | 
					
						
							|  |  |  |   if test -x /usr/xpg4/bin/id; then | 
					
						
							|  |  |  |     UID=`/usr/xpg4/bin/id -u`; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     UID=`id -u`; | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # set $XDG_MENU_PREFIX to "xfce-" so that "xfce-applications.menu" is picked | 
					
						
							|  |  |  | # over "applications.menu" in all Xfce applications. | 
					
						
							|  |  |  | if test "x$XDG_MENU_PREFIX" = "x"; then | 
					
						
							|  |  |  |   XDG_MENU_PREFIX="xfce-" | 
					
						
							|  |  |  |   export XDG_MENU_PREFIX | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # set DESKTOP_SESSION so that one can detect easily if an Xfce session is running | 
					
						
							|  |  |  | if test "x$DESKTOP_SESSION" = "x"; then | 
					
						
							|  |  |  |   DESKTOP_SESSION="xfce" | 
					
						
							|  |  |  |   export DESKTOP_SESSION | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-31 00:55:23 +00:00
										 |  |  | # set XDG_CURRENT_DESKTOP so that Qt 5 applications can identify user set Xfce theme | 
					
						
							|  |  |  | if test "x$XDG_CURRENT_DESKTOP" = "x"; then | 
					
						
							|  |  |  |   XDG_CURRENT_DESKTOP="XFCE" | 
					
						
							|  |  |  |   export XDG_CURRENT_DESKTOP | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-27 00:58:55 +00:00
										 |  |  | # $XDG_CONFIG_HOME defines the base directory relative to which user specific | 
					
						
							|  |  |  | # configuration files should be stored. If $XDG_CONFIG_HOME is either not set | 
					
						
							|  |  |  | # or empty, a default equal to $HOME/.config should be used. | 
					
						
							|  |  |  | if test "x$XDG_CONFIG_HOME" = "x" ; then | 
					
						
							|  |  |  |   XDG_CONFIG_HOME=$HOME/.config | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | [ -d "$XDG_CONFIG_HOME" ] || mkdir "$XDG_CONFIG_HOME" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # $XDG_CACHE_HOME defines the base directory relative to which user specific | 
					
						
							|  |  |  | # non-essential data files should be stored. If $XDG_CACHE_HOME is either not | 
					
						
							|  |  |  | # set or empty, a default equal to $HOME/.cache should be used. | 
					
						
							|  |  |  | if test "x$XDG_CACHE_HOME" = "x" ; then | 
					
						
							|  |  |  |   XDG_CACHE_HOME=$HOME/.cache | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | [ -d "$XDG_CACHE_HOME" ] || mkdir "$XDG_CACHE_HOME" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # set up XDG user directores.  see | 
					
						
							|  |  |  | # http://freedesktop.org/wiki/Software/xdg-user-dirs | 
					
						
							|  |  |  | if which xdg-user-dirs-update >/dev/null 2>&1; then | 
					
						
							|  |  |  |     xdg-user-dirs-update | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Modify libglade and glade environment variables so that | 
					
						
							|  |  |  | # it will find the files installed by Xfce | 
					
						
							|  |  |  | GLADE_CATALOG_PATH="$GLADE_CATALOG_PATH:" | 
					
						
							|  |  |  | GLADE_PIXMAP_PATH="$GLADE_PIXMAP_PATH:" | 
					
						
							|  |  |  | GLADE_MODULE_PATH="$GLADE_MODULE_PATH:" | 
					
						
							|  |  |  | export GLADE_CATALOG_PATH | 
					
						
							|  |  |  | export GLADE_PIXMAP_PATH | 
					
						
							|  |  |  | export GLADE_MODULE_PATH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # For now, start with an empty list | 
					
						
							|  |  |  | XRESOURCES="" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Has to go prior to merging Xft.xrdb, as its the "Defaults" file | 
					
						
							|  |  |  | test -r "/etc/xdg/xfce4/Xft.xrdb" && XRESOURCES="$XRESOURCES /etc/xdg/xfce4/Xft.xrdb" | 
					
						
							|  |  |  | test -r $HOME/.Xdefaults && XRESOURCES="$XRESOURCES $HOME/.Xdefaults" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BASEDIR=$XDG_CONFIG_HOME/xfce4 | 
					
						
							|  |  |  | if test -r "$BASEDIR/Xft.xrdb"; then | 
					
						
							|  |  |  |   XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb" | 
					
						
							|  |  |  | elif test -r "$XFCE4HOME/Xft.xrdb"; then | 
					
						
							|  |  |  |   mkdir -p "$BASEDIR" | 
					
						
							|  |  |  |   cp "$XFCE4HOME/Xft.xrdb" "$BASEDIR"/ | 
					
						
							|  |  |  |   XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # merge in X cursor settings | 
					
						
							|  |  |  | test -r "$BASEDIR/Xcursor.xrdb" && XRESOURCES="$XRESOURCES $BASEDIR/Xcursor.xrdb" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ~/.Xresources contains overrides to the above | 
					
						
							|  |  |  | test -r "$HOME/.Xresources" && XRESOURCES="$XRESOURCES $HOME/.Xresources" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # load all X resources (adds /dev/null to avoid an empty list that would hang the process) | 
					
						
							|  |  |  | cat /dev/null $XRESOURCES | xrdb -nocpp -merge - | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # load local modmap | 
					
						
							|  |  |  | test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # run xfce4-session if installed | 
					
						
							|  |  |  | if which xfce4-session >/dev/null 2>&1; then | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # check if we start xfce4-session with ck-launch-session. this is only | 
					
						
							|  |  |  |   # required for starting from a console, not a login manager | 
					
						
							|  |  |  |   if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then | 
					
						
							|  |  |  |     if which ck-launch-session >/dev/null 2>&1; then | 
					
						
							|  |  |  |       ck-launch-session xfce4-session | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       echo | 
					
						
							|  |  |  |       echo "You have tried to start Xfce with consolekit support, but" | 
					
						
							|  |  |  |       echo "ck-launch-session is not installed." | 
					
						
							|  |  |  |       echo "Aborted startup..." | 
					
						
							|  |  |  |       echo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       exit 1 | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     # start xfce4-session normally | 
					
						
							|  |  |  |     xfce4-session | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################## | 
					
						
							|  |  |  | # IMPORTANT NOTE # | 
					
						
							|  |  |  | ################## | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Everything below here ONLY gets executed if you are NOT using xfce4-session | 
					
						
							|  |  |  | # (Xfce's session manager).  If you are using the session manager, everything | 
					
						
							|  |  |  | # below is handled by it, and the code below is not executed at all.  If you're | 
					
						
							|  |  |  | # not sure if you're using the session manager, type 'ps -e|grep xfce4-session' | 
					
						
							|  |  |  | # in a terminal while Xfce is running. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################## | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Use dbus-launch if installed. | 
					
						
							|  |  |  | if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then | 
					
						
							|  |  |  |   if which dbus-launch >/dev/null 2>&1; then | 
					
						
							|  |  |  |     eval `dbus-launch --sh-syntax --exit-with-session` | 
					
						
							|  |  |  |     # some older versions of dbus don't export the var properly | 
					
						
							|  |  |  |     export DBUS_SESSION_BUS_ADDRESS | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     echo "Could not find dbus-launch; Xfce will not work properly" >&2 | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # this is only necessary when running w/o xfce4-session | 
					
						
							|  |  |  | xsetroot -solid black -cursor_name watch | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # or use old-fashioned startup script otherwise | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | xfsettingsd & | 
					
						
							|  |  |  | xfwm4 --daemon | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # start up stuff in $XDG_CONFIG_HOME/autostart/ | 
					
						
							|  |  |  | if test -d "$XDG_CONFIG_HOME/autostart"; then | 
					
						
							|  |  |  |   for i in ${XDG_CONFIG_HOME}/autostart/*.desktop; do | 
					
						
							|  |  |  |     grep -q -E "^Hidden=true" "$i" && continue | 
					
						
							|  |  |  |     if grep -q -E "^OnlyShowIn=" "$i"; then | 
					
						
							|  |  |  |       # need to test twice, as lack of the line entirely means we still run it | 
					
						
							|  |  |  |       grep -E "^OnlyShowIn=" "$i" | grep -q 'XFCE;' || continue | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     grep -E "^NotShowIn=" "$i" | grep -q 'XFCE;' && continue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # check for TryExec | 
					
						
							|  |  |  |     trycmd=`grep -E "^TryExec=" "$i" | cut -d'=' -f2` | 
					
						
							|  |  |  |     if test "$trycmd"; then | 
					
						
							|  |  |  |       which "$trycmd" >/dev/null 2>&1 || continue | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     cmd=`grep -E "^Exec=" "$i" | cut -d'=' -f2` | 
					
						
							|  |  |  |     if test "$cmd" && which "$cmd" >/dev/null 2>&1; then | 
					
						
							|  |  |  |       $cmd & | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | xfdesktop& | 
					
						
							|  |  |  | orage & | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | panel=`which xfce4-panel` | 
					
						
							|  |  |  | case "x$panel" in | 
					
						
							|  |  |  | 	x|xno*) | 
					
						
							|  |  |  | 		;; | 
					
						
							|  |  |  | 	*) | 
					
						
							|  |  |  | 		$panel | 
					
						
							|  |  |  | 		ret=$? | 
					
						
							|  |  |  | 		while test $ret -ne 0; do | 
					
						
							|  |  |  | 			xmessage -center -file - -timeout 20 -title Error <<EOF | 
					
						
							|  |  |  | A crash occured in the panel | 
					
						
							|  |  |  | Please report this to the xfce4-dev@xfce.org list | 
					
						
							|  |  |  | or on http://bugs.xfce.org | 
					
						
							|  |  |  | Meanwhile the panel will be restarted | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | 			cat >&2 <<EOF | 
					
						
							|  |  |  | A crash occured in the panel | 
					
						
							|  |  |  | Please report this to the xfce4-dev@xfce.org list | 
					
						
							|  |  |  | or on http://bugs.xfce.org | 
					
						
							|  |  |  | Meanwhile the panel will be restarted | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | 			$panel | 
					
						
							|  |  |  | 			ret=$? | 
					
						
							|  |  |  | 		done | 
					
						
							|  |  |  | 		;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | xsetroot -bg white -fg red  -solid black -cursor_name watch |