Index: xfce4-session-4.12.0/scripts/xinitrc.in =================================================================== --- xfce4-session-4.12.0.orig/scripts/xinitrc.in +++ xfce4-session-4.12.0/scripts/xinitrc.in @@ -16,11 +16,16 @@ if test "x$XDG_MENU_PREFIX" = "x"; then export XDG_MENU_PREFIX fi -# set DESKTOP_SESSION so that one can detect easily if an Xfce session is running +# set DESKTOP_SESSION and XDG_CURRENT_DESKTOP 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 +if test "x$XDG_CURRENT_DESKTOP" = "x"; then + XDG_CURRENT_DESKTOP="XFCE" + export XDG_CURRENT_DESKTOP +fi # set XDG_CURRENT_DESKTOP so that Qt 5 applications can identify user set Xfce theme if test "x$XDG_CURRENT_DESKTOP" = "x"; then @@ -44,12 +49,6 @@ if test "x$XDG_CACHE_HOME" = "x" ; then 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:/usr/share/glade3/catalogs" @@ -87,112 +86,17 @@ cat /dev/null $XRESOURCES | xrdb -nocpp # 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 +# 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 ! ck-launch-session xfce4-session; then + cat >&2 <<'EOF' +Failed to start Xfce with consolekit support. +Aborted startup... +EOF + exit 1 fi - - exit 0 +else + # start xfce4-session normally + xfce4-session 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 <&2 </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:@XFCE_GLADE_CATALOG_PATH@" @@ -87,112 +86,17 @@ cat /dev/null $XRESOURCES | xrdb -nocpp # 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 +# 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 ! ck-launch-session xfce4-session; then + cat >&2 <<'EOF' +Failed to start Xfce with consolekit support. +Aborted startup... +EOF + exit 1 fi - - exit 0 +else + # start xfce4-session normally + xfce4-session 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 <&2 <