#!/bin/bash
# lastact: arturo@2023-04-12
# desc: Eliminamos los archivos de configuración del usuario gráfico y reiniciamos el entorno de escritorio (panel y gestor de ventanas)

FICHFUNCS="/usr/bin/vx-funcs-bash"
[ -f "${FICHFUNCS}" ] && . "${FICHFUNCS}" "null"

EJECUTOR="$(whoami)"

declare -a LISTA_USUARIOS
# Comprobamos si esta instalado el paquete vx-dga-l-congelar-escritorio, el cual guarda en /tmp/vx-lista-usuarios-iniciado-sesion los usuarios que han iniciado sesión gráfica:
FICH_LISTA_USUARIOS_INICIO_SESION="/tmp/vx-lista-usuarios-iniciado-sesion"
[[ "${EJECUTOR}" == "root" && -z "${1}" && -f "${FICH_LISTA_USUARIOS_INICIO_SESION}" ]] &&
LISTA_USUARIOS=($(cat "${FICH_LISTA_USUARIOS_INICIO_SESION}"))
((${#LISTA_USUARIOS[@]} == 0)) && LISTA_USUARIOS=($(vx-funcs-users vx-obtener_lista_usuarios "${@}"))

function reset_con_gui() {
    # 1) Eliminamos algunos directorios y ficheros básicos:
    TEXTO="Eliminamos ficheros y directorios básicos de configuración personales"
    vx-colorear_echo "magenta" "[$(vx-fecha)] ${TEXTO}"
    vx-eliminar-ficheros-conf-personales --basic "$(vx-usuario-grafico)"
    # vx-xfconf-query-restore # No es necesario el restore al matar a xfconfd al reiniciar el entorno de escritorio
    # 2) Cerramos el explorador de archivos: nemo
    TEXTO="Cerramos el explorador de archivos: nemo"
    vx-colorear_echo "magenta" "[$(vx-fecha)] ${TEXTO}"
    nemo -q
    # 3) Llamamos al script de reiniciar el entorno de escritorio:
    TEXTO="Reiniciamos en el entorno XFCE4"
    vx-colorear_echo "magenta" "[$(vx-fecha)] ${TEXTO}"
    vx-reiniciar-entorno-xfce4-cli
    # 4) Reiniciamos nemo-desktop: matamos y lo arrancamos de nuevo
    TEXTO="Reseteamos nemo-desktop: gestión del Escritorio"
    vx-colorear_echo "magenta" "[$(vx-fecha)] ${TEXTO}"
    vx-nemo-desktop --reset
    exit 0
}

function reset_sin_gui() {
    # Eliminamos archivos de configuración personales:
    for USUARIO in "${LISTA_USUARIOS[@]}"; do
        vx-eliminar-ficheros-conf-personales "${USUARIO}"
    done
}

# 1) Preparamos la auditoria:
LOG="$(basename "${0}").log"
vx-log_xsession -o "${LOG}"

TEXTO="Resetear Entorno de Escritorio: ${LISTA_USUARIOS[*]}"
vx-echo_log_titulo1 "SRV-RESETEAR-ESCRITORIO" "${TEXTO}"

# 2) Comprobamos quien ejecuta la acción y si nos encontramos en un entorno gráfico iniciado:
[[ "${EJECUTOR}" != "root" ]] && vx-detectar_gui && reset_con_gui

reset_sin_gui

exit 0
