#!/bin/sh

contains()
{
    local str="$1" substr="$2"
    [ "$str" = "$substr" -o -z "${str##$substr:*}" -o -z "${str##*:$substr:*}" -o -z "${str%%*:$substr}" ]
}

# (tpg) create localized user dirs
if which xdg-user-dirs-update >/dev/null 2>&1; then
    xdg-user-dirs-update
fi

if [ -z "$XDG_DATA_HOME" ]; then
    export XDG_DATA_HOME="$HOME/.local/share"
fi

if [ -z "$XDG_CONFIG_HOME" ]; then
    export XDG_CONFIG_HOME="$HOME/.config"
fi

if [ -z "$XDG_DATA_DIRS" ]; then
    XDG_DATA_DIRS="$XDG_DATA_HOME:/usr/local/share:/usr/share"
else
    if ! contains "$XDG_DATA_DIRS" "$XDG_DATA_HOME"; then
        XDG_DATA_DIRS="$XDG_DATA_DIRS:$XDG_DATA_HOME"
    fi
    if ! contains "$XDG_DATA_DIRS" "/usr/share"; then
        XDG_DATA_DIRS="$XDG_DATA_DIRS:/usr/share"
    fi
fi
export XDG_DATA_DIRS

if [ -z "$XDG_CONFIG_DIRS" ]; then
    export XDG_CONFIG_DIRS="/etc/xdg"
fi

if [ -z "$XDG_CACHE_HOME" ]; then
    export XDG_CACHE_HOME="$HOME/.cache"
fi

# Ensure the existance of the 'Desktop' folder
if [ -e "$XDG_CONFIG_HOME/user-dirs.dirs" ]; then
    . "$XDG_CONFIG_HOME/user-dirs.dirs"
else
    XDG_DESKTOP_DIR="$HOME/Desktop"
fi
mkdir -p "$XDG_DESKTOP_DIR"

# Clean up after GDM (GDM sets the number of desktops to one)
xprop -root -remove _NET_NUMBER_OF_DESKTOPS -remove _NET_DESKTOP_NAMES -remove _NET_CURRENT_DESKTOP 2> /dev/null

# Enable Qt integration for OpenOffice.org, if available.
export SAL_USE_VCLPLUGIN=kde4

# Launch DBus if needed
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
    eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi

# Qt4 platform plugin
export QT_PLATFORM_PLUGIN=lxqt

# Qt5 platform plugin
export QT_QPA_PLATFORMTHEME=lxqt

# use lxqt-applications.menu for main app menu
export XDG_MENU_PREFIX="lxqt-"

export XDG_CURRENT_DESKTOP="LXQt"

# (tpg) copy default settings because LxQt cannot read them from /etc
if test "x$XDG_CONFIG_HOME" = "x"
then
    BASEDIR="$HOME/.config"
else
    BASEDIR="$XDG_CONFIG_HOME"
fi

if [ ! -d $BASEDIR/lxqt ]; then

    for i in lxqt pcmanfm-qt; do
	mkdir -p $BASEDIR/$i
	cp -af /etc/xdg/$i $BASEDIR ;
    done
fi

if [ ! -e $XDG_CONFIG_HOME/lxqt.firstboot ]; then
    #(tpg) add special icons on DESKTOP
    USER_DESKTOP=`xdg-user-dir DESKTOP`

    if [ ! -e $USER_DESKTOP/om-welcome.desktop ]; then
	if [ -e /usr/share/applications/om-welcome.desktop ]; then
	    cp -f /usr/share/applications/om-welcome.desktop $USER_DESKTOP 2> /dev/null
	    # (tpg) workaround for LxQt not displaying icons for desktop files on LxQt desktop
	    sed -i -e "s#^Icon=.*#Icon=/usr/share/icons/openmandriva.svg#g" $USER_DESKTOP/om-welcome.desktop
	    chmod +x $USER_DESKTOP/om-welcome.desktop
	fi
    fi

    if [ ! -e $USER_DESKTOP/join.desktop ]; then
	cp -f /usr/share/applications/join.desktop $USER_DESKTOP 2> /dev/null
	# (tpg) workaround for LxQt not displaying icons for desktop files on LxQt desktop
	sed -i -e "s#^Icon=.*#Icon=/usr/share/icons/omv-join-now.png#g" $USER_DESKTOP/join.desktop
	chmod +x $USER_DESKTOP/join.desktop
    fi

    if [ ! -e $USER_DESKTOP/donate.desktop ]; then
	cp -f /usr/share/applications/donate.desktop $USER_DESKTOP 2> /dev/null
        # (tpg) workaround for LxQt not displaying icons for desktop files on LxQt desktop
	sed -i -e "s#^Icon=.*#Icon=/usr/share/icons/omv-donate.png#g" $USER_DESKTOP/donate.desktop
	chmod +x $USER_DESKTOP/donate.desktop
    fi

    if [ ! -e $USER_DESKTOP/calamares.desktop ]; then
	if [ -e /usr/share/applications/calamares.desktop ]; then
	    cp -f /usr/share/applications/calamares.desktop $USER_DESKTOP 2> /dev/null
	    # (tpg) workaround for LxQt not displaying icons for desktop files on LxQt desktop
	    sed -i -e "s#^Icon=.*#Icon=/usr/share/icons/openmandriva-install.svg#g" $USER_DESKTOP/calamares.desktop
	    chmod +x $USER_DESKTOP/calamares.desktop
	fi
    fi

    touch $XDG_CONFIG_HOME/lxqt.firstboot

fi

# workaround for openbox not being start on first boot
if cat $BASEDIR/lxqt/session.conf | grep -w window_manager=openbox > /dev/null 2>&1; then
    if ! pgrep "openbox" > /dev/null 2>&1; then
	exec /usr/bin/openbox &
    fi
fi

# Start the LXQt session
exec lxqt-session
