#!/bin/bash

############################
# Wird von 200.sh getriggert
############################

RESNEW=$(grep '^XRANDR=' /home/snowtv/bin/mc.cfg | cut -d= -f2- | tr -d '\r')
RESNEW=${RESNEW:-"xrandr --output HDMI-1 --mode 1920x1080 --rotation normal"}

# Liefert nur die xrandr-Flags (ohne führendes "xrandr ") für direkte Übergabe an /usr/bin/xrandr
setx () {
	local val
	val=$(grep '^XRANDR=' /home/snowtv/bin/mc.cfg | cut -d= -f2- | tr -d '\r')
	val="${val#xrandr }"
	echo "$val"
}

# Wenn Grafikeinstellung setzen
DISPLAY=:0.0 /usr/bin/xrandr $(setx)

# Bei mehreren aktiven Outputs (Extended-/Mirror-Screen) zu einem kombinierten
# RandR-1.5-Monitor zusammenfassen. Grund: --kiosk-Fullscreen (Chromium) ist
# RandR-monitor-aware und skaliert sonst immer nur auf den ersten physischen
# Output, selbst wenn per xrandr --pos ein Extended-Layout über beide Outputs
# gesetzt ist (live verifiziert auf Player 666, 27.08.2026, HDMI-1+DP-1).
ACTIVE_OUTPUTS=$(DISPLAY=:0.0 xrandr --query | awk '/ connected /{print $1}')
NUM_OUTPUTS=$(echo "$ACTIVE_OUTPUTS" | grep -c .)
if [ "$NUM_OUTPUTS" -gt 1 ]; then
	COMBINED_GEOM=$(DISPLAY=:0.0 xrandr --query | sed -n 's/.*current \([0-9]*\) x \([0-9]*\).*/\1\/0x\2\/0/p')
	OUTPUT_LIST=$(echo "$ACTIVE_OUTPUTS" | paste -sd, -)
	DISPLAY=:0.0 xrandr --setmonitor combined-wall "${COMBINED_GEOM}+0+0" "$OUTPUT_LIST"
	echo "$(date)  INFO: kombinierter RandR-Monitor 'combined-wall' (${COMBINED_GEOM}) über ${OUTPUT_LIST} gesetzt" | tee -a /var/log/stv.log
else
	DISPLAY=:0.0 xrandr --delmonitor combined-wall 2>/dev/null
fi

DISPLAY=:0.0 openbox --restart
/home/snowtv/bin/dispon.sh
echo "$(date)  INFO: Anzeigeeinstellungen gem. mc.cfg gesetzt" | tee -a /var/log/stv.log
sleep 0.5
AUTOSTART="/home/snowtv/.config/openbox/autostart"
if grep -q "^xrandr" "$AUTOSTART"; then
	sed -i "s/^xrandr.*$/$RESNEW \&/g" "$AUTOSTART"
	echo "$(date)  INFO: xrandr in autostart aktualisiert: $RESNEW" | tee -a /var/log/stv.log
else
	echo "$RESNEW &" >> "$AUTOSTART"
	echo "$(date)  INFO: xrandr in autostart eingefügt: $RESNEW" | tee -a /var/log/stv.log
fi
exit 0
