#!/bin/bash
# Wrapper para ejecutar abrir-recomendados con entorno gráfico correcto
# Este script es el que pkexec ejecuta como root.
# Argumentos opcionales: $1 = DISPLAY, $2 = XAUTHORITY del usuario que lo invocó.

# Identificar el usuario real que invocó pkexec (sin suponer ningún usuario por defecto)
USUARIO_REAL=""
if [ -n "$PKEXEC_UID" ]; then
    USUARIO_REAL="$(getent passwd "$PKEXEC_UID" | cut -d: -f1)"
fi
[ -z "$USUARIO_REAL" ] && USUARIO_REAL="$SUDO_USER"
[ -z "$USUARIO_REAL" ] && USUARIO_REAL="$(logname 2>/dev/null)"
if [ -z "$USUARIO_REAL" ] || [ "$USUARIO_REAL" = "root" ]; then
    # Último recurso: usuario con sesión gráfica activa
    USUARIO_REAL="$(loginctl list-sessions --no-legend 2>/dev/null | awk '$3!="root"{print $3; exit}')"
fi
if [ -z "$USUARIO_REAL" ] || ! getent passwd "$USUARIO_REAL" >/dev/null; then
    echo "abrir-recomendados-wrapper: no se pudo determinar el usuario que lo invocó." >&2
    exit 1
fi

HOME_REAL="$(getent passwd "$USUARIO_REAL" | cut -d: -f6)"
[ -d "$HOME_REAL" ] || HOME_REAL="/home/${USUARIO_REAL}"

# Reconstruir las variables gráficas
export DISPLAY="${1:-${DISPLAY:-:0}}"
export XAUTHORITY="${2:-${HOME_REAL}/.Xauthority}"

# Variables necesarias para Gambas
export GB_NO_JIT=1
export GTK_THEME=Adwaita
export HOME="${HOME_REAL}"

# Permitir que root dibuje en el display del usuario
xhost +local:root 2>/dev/null || true

cd "${HOME_REAL}" || cd /

exec /usr/local/bin/abrir-recomendados
