#!/bin/bash
# VNC xstartup - launches terminal with cisco-vpn script

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# Import environment variables from container (PID 1)
# Systemd services don't inherit Docker env vars, so we source them here
while IFS= read -r -d '' line; do
    export "$line"
done < /proc/1/environ

export XDG_RUNTIME_DIR=/tmp/runtime-root
mkdir -p $XDG_RUNTIME_DIR
chmod 700 $XDG_RUNTIME_DIR

# Force software rendering (no GPU/OpenGL)
export QT_QUICK_BACKEND=software
export LIBGL_ALWAYS_SOFTWARE=1
export GALLIUM_DRIVER=llvmpipe
export MESA_GL_VERSION_OVERRIDE=3.3

# GPU/WebKit workarounds for Cisco UI
export GDK_BACKEND=x11
export WEBKIT_DISABLE_DMABUF_RENDERER=1

# Qt/Chromium flags for running as root (no sandbox)
export QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-gpu"
export QTWEBENGINE_DISABLE_SANDBOX=1

# Start system dbus daemon (needed for Chromium)
mkdir -p /run/dbus
dbus-daemon --system --fork 2>/dev/null || true

# Start dbus session
[ -x /usr/bin/dbus-launch ] && eval $(dbus-launch --sh-syntax --exit-with-session)

# Start window manager
openbox &
sleep 2

# Disable screen blanking and power saving
xset s off 2>/dev/null || true
xset -dpms 2>/dev/null || true
xset s noblank 2>/dev/null || true

# Make script executable and launch in terminal
chmod +x /shared/openconnect-vpn 2>/dev/null || true
xterm -fn fixed -bg black -fg white -geometry 130x45+10+10 \
    -title "Cistech VPN Terminal" \
    -e "bash -c '/shared/openconnect-vpn; exec bash'" &

wait
