#!/bin/bash
SOURCE="$0"
source /usr/lib/elive-tools/functions
EL_REPORTS="1"
el_make_environment
. gettext.sh
TEXTDOMAIN="elive-tools"
export TEXTDOMAIN


main(){
    # pre {{{
    if ! el_dependencies_check "gksu" ; then
        el_dependencies_install "gksu"
    fi

    # }}}

    # pre fixes:
    #el_debug "audio fixes"
    elive-audio-fixes &
    #el_debug "reconfigurations"
    elive-reconfigurations &
    #el_debug "health"
    elive-health --no-delay &


    unset menu

    menu+=("lock")
    menu+=("$( eval_gettext "Lock your desktop" )")

    menu+=("userswitch")
    menu+=("$( eval_gettext "Switch to another user" )")

    menu+=("logout")
    menu+=("$( eval_gettext "Logout" )")

    menu+=("tasks")
    menu+=("$( eval_gettext "Task Manager" )")

    menu+=("newdesktop")
    menu+=("$( eval_gettext "Reset desktop settings" )")

    #menu+=("resetaudio")
    #menu+=("$( eval_gettext "Reset audio volumes" )")

    menu+=("resetaudio")
    menu+=("$( eval_gettext "Reset audio configurations" )")

    menu+=("userconf")
    menu+=("$( eval_gettext "Users manager" )")

    menu+=("bugreport")
    menu+=("$( eval_gettext "Report an issue to Elive" )")


    answer="$( timeout 1200 zenity --list --width=300 --height=280 --text="" --column="" --column="$( eval_gettext "Option" )" "${menu[@]}" --print-column=1 --hide-column=1 || echo cancel )"

    case "$answer" in
        "lock")
            elive-pm "lock"
            ;;
        "userswitch")
            if pidof lightdm 1>/dev/null 2>&1 ; then
                dm-tool switch-to-greeter
                exit
            else
                zenity --error --text="$( eval_gettext "You are not using Lightdm. To switch between different user desktops, you need to use the Lightdm login manager. Reinstall the package if you don't have it." )"
            fi
            ;;
        "logout")
            elive-pm "logoutmenu"
            exit
            ;;
        "tasks")
            if which gnome-system-monitor 1>/dev/null 2>&1 ; then
                gnome-system-monitor -p
            else
                if which evisum 1>/dev/null 2>&1 ; then
                    evisum
                fi
            fi
            ;;
        "newdesktop")
            e17-restart-and-remove-conf-file-WARNING-dont-complain --ask
            exit
            ;;
        "resetaudio")
            # note: same code exists in elive-audio-fixes tool
            el_pulseaudio stop

            rm -rf ~/.config/pulse/cookie ~/.pulse/* ~/.asoundrc 2>/dev/null || true

            audio-configurator  --quiet --auto --smart

            el_pulseaudio start

            # fix volumes
            rm -f "$HOME/.config/setvolume" 2>/dev/null 1>&2

            setvolume defaults

            timeout 5 aplay /dev/null 2>/dev/null
            LC_ALL=C sleep 0.2

            local message_volume
            message_volume="$( printf "$( eval_gettext "Audio configuration and volume have been reset. Please restart your applications." )" "" )"

            el_notify soft stock_volume "Audio Configuration Resetted" "$message_volume"

            ;;
        "userconf")
            gksu user-manager
            ;;
        "bugreport")
            elive-bug-report
            ;;
    esac




    # post fixes:
    #el_debug "news"
    elive-news &
    #el_debug "upgrader"
    elive-upgrader &

    wait
}

#
#  MAIN
#
main "$@"

# vim: set foldmethod=marker :
