#!/usr/bin/with-contenv bash

# Cleanup
rm -f /tmp/.X1-lock

# Clamp virtual screen max size based on env
DEFAULT_RES="15360x8640"
if [ ! -z ${MAX_RES+x} ]; then
  DEFAULT_RES="${MAX_RES}"
fi
if [ -n "${SELKIES_MANUAL_HEIGHT}" ] || [ -n "${SELKIES_MANUAL_WIDTH}" ]; then
  T_WIDTH="${SELKIES_MANUAL_WIDTH:-1024}"
  T_HEIGHT="${SELKIES_MANUAL_HEIGHT:-768}"
  if [ "${T_WIDTH}" = "0" ]; then T_WIDTH="1024"; fi
  if [ "${T_HEIGHT}" = "0" ]; then T_HEIGHT="768"; fi
  DEFAULT_RES="${T_WIDTH}x${T_HEIGHT}"
fi

# Run Xvfb server with required extensions
exec s6-setuidgid abc \
  /usr/bin/Xvfb \
    "${DISPLAY}" \
    -screen 0 "${DEFAULT_RES}x24" \
    -dpi "96" \
    +extension "COMPOSITE" \
    +extension "DAMAGE" \
    +extension "GLX" \
    +extension "RANDR" \
    +extension "RENDER" \
    +extension "MIT-SHM" \
    +extension "XFIXES" \
    +extension "XTEST" \
    +iglx \
    +render \
    -nolisten "tcp" \
    -ac \
    -noreset \
    -shmem
