#!/bin/bash
# lastact: arturo@2023-04-12
# desc: Reiniciamos el entorno de escritorio (panel y gestor de ventanas)

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

# 0) Comprobamos que estamos en un entorno gráfico:
! vx-detectar_gui && exit 0

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

TEXTO="Reiniciamos el entorno de Escritorio: xfce4-panel y xfwm4"
vx-colorear_echo "magenta" "[$(vx-fecha)] ${TEXTO}"

# 2) Matamos al entorno de Escritorio:
TEXTO="Matamos los elementos del entorno de Escritorio: xfce4-panel, xfcond, xfsettingsd, xfdesktop"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
xfce4-panel --quit
# /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd # Ruta del servicio xfconfd
pkill xfconfd       # xfce4-panel al ejecutarse volverá a lanzar el demonio xfconfd
killall xfsettingsd # Matamos al servicio encargado de las settings
killall xfdesktop   # Matamos el Desktop y éste rearrancará él sólo
sleep 1

# 3) Relanzamos el entonro de Escritorio:
# 3.1) Reiniciamos el gestor de ventanas: xfwm4
TEXTO="Relanzamos el entorno de Escritorio: xfwm4 (gestor de ventanas)"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
xfwm4 --replace 2>/dev/null &
disown # Equivalente: nohup xfwm4 --replace &
# 3.2) Relanzamos el servicio encargado de aplicar las settings:
TEXTO="Relanzamos el entorno de Escritorio: xfsettingsd (settings del entorno)"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
xfsettingsd --replace 2>/dev/null &
disown
# 3.3) Relanzamos xfdesktop:
TEXTO="Relanzamos el entorno de Escritorio: xfdesktop (gestor del Escritorio)"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
xfdesktop -R &
disown
# 3.4) Relanzamos el panel:
TEXTO="Relanzamos el entorno de Escritorio: xfce4-panel (panel superior)"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
sleep 1
# xfce4-panel --restart # Equivalente: killall xfce4-panel; xfce4-panel & disown
xfce4-panel 2>/dev/null &
disown

# 4) reinicamos el widget del escritorio:
# FICH_EXEC="vx-inicio-conky"
# [ -e "${FICH_EXEC}" ] && "${FICH_EXEC}"
TEXTO="Relanzamos el entorno de Escritorio: conky (widget informativo)"
vx-colorear_echo "azul" "[$(vx-fecha)] ${TEXTO}"
sleep 1
killall conky

# 5) Reiniciamos Albert:
# FICH_EXEC="vx-albert-restart"
# [ -e "${FICH_EXEC}" ] && vx-detectar_gui && "${FICH_EXEC}"

exit 0
