#!/bin/bash
# lastact: arturo@2023-04-21
# desc: Permite hacer uso de xfconf-query desde el usuario root
[[ ! "${1}" || ! "${2}" ]] &&
echo "=> Debes pasar 2 o 3 parámetros: usuario canal clave" && exit 1
# export DISPLAY=:0
# export XAUTHORITY="$(vx-home-usuario-grafico "${1}")/.Xauthority"
# export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u "${1}")/bus"
# $1: nombre del usuario con que ejecutar el comando xfconf. Comprobamos que el usuario existe:
USUARIOG="$(vx-usuario-grafico)"
if [[ "${1}" ]]; then
    getent passwd "${1}" >/dev/null 2>&1 &&
    USUARIO="${1}" ||
    {
        echo "=> Error: El usuario indicado ${1} no existe, suplantaremos al usuario gráfico" >&2 &&
        USUARIO="${USUARIOG}"
    }
else
    USUARIO="${USUARIOG}"
fi
# $2: canal: xfce4-desktop xfce4-panel ... [canales disponibles: xfconf-query -l -v]
CANAL="${2}"
# $3: path
PATH_XML="${3}"
[[ "${3}" ]] &&
COMANDO="xfconf-query -c ${CANAL} -p ${PATH_XML} -v" ||
COMANDO="xfconf-query -c ${CANAL} -l -v"
if [[ "${USER}" == "root" ]]; then
    # [[ "${USUARIOG}" != "lightdm" ]] &&
    #     su "${1}" -c "${COMANDO}" ||
    #     ssh -o StrictHostKeyChecking=no "${1}"@localhost su "${1}" \
    #         -c "DISPLAY=:0 XAUTHORITY=${XAUTHORITY} DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u "${1}")/bus \
    #         ${COMANDO}"
    vx-runas "${USUARIO}" "${COMANDO}"
else
    eval "${COMANDO}"
fi
