#!/bin/bash
set -e

# Find the actual desktop user (not root)
if [ -n "$SUDO_USER" ]; then
    DESKTOP_USER="$SUDO_USER"
elif [ -n "$PKEXEC_UID" ]; then
    DESKTOP_USER=$(id -un "$PKEXEC_UID")
else
    # Find user with active X session
    DESKTOP_USER=$(who | grep '(:0)' | awk '{print $1}' | head -n1)
fi

# Fallback to first non-root user if still not found
if [ -z "$DESKTOP_USER" ] || [ "$DESKTOP_USER" = "root" ]; then
    DESKTOP_USER=$(getent passwd 1000 | cut -d: -f1)
fi

# Get user's home directory
USER_HOME=$(getent passwd "$DESKTOP_USER" | cut -d: -f6)

# Set XAUTHORITY
export XAUTHORITY="$USER_HOME/.Xauthority"
export DISPLAY=:0

# Ensure .Xauthority exists with correct permissions
if [ ! -f "$XAUTHORITY" ]; then
    touch "$XAUTHORITY"
    chown "$DESKTOP_USER:$DESKTOP_USER" "$XAUTHORITY"
    chmod 600 "$XAUTHORITY"
fi

# Log for debugging (optional)
echo "Starting rakaard-engine as user: $DESKTOP_USER" >> /var/log/rakaard.log
echo "XAUTHORITY: $XAUTHORITY" >> /var/log/rakaard.log
echo "DISPLAY: $DISPLAY" >> /var/log/rakaard.log

# Run the application
exec ./rakaard "$@"
