#!/bin/bash
# internal-display on|off|toggle|status
# (De)aktiverar den interna skärmen (eDP) via xrandr.
# Vägrar stänga av den om det är den enda aktiva skärmen just nu.
set -euo pipefail
INTERNAL="eDP"
LAYOUT_SCRIPT="$HOME/.screenlayout/xrantui.sh"
active_outputs() {
xrandr --listmonitors | tail -n +2 | awk '{print $NF}'
}
is_internal_active() {
active_outputs | grep -qx "$INTERNAL"
}
case "${1:-}" in
off)
if ! is_internal_active; then
echo "Interna skärmen ($INTERNAL) är redan avstängd."
exit 0
fi
others=$(active_outputs | grep -vx "$INTERNAL" || true)
if [ -z "$others" ]; then
echo "Vägrar stänga av $INTERNAL - det är den enda aktiva skärmen just nu." >&2
exit 1
fi
xrandr --output "$INTERNAL" --off
echo "Interna skärmen avstängd."
;;
on)
if [ -x "$LAYOUT_SCRIPT" ]; then
"$LAYOUT_SCRIPT"
else
xrandr --output "$INTERNAL" --auto
fi
echo "Interna skärmen påslagen."
;;
toggle)
if is_internal_active; then
exec "$0" off
else
exec "$0" on
fi
;;
status)
if is_internal_active; then
echo "PÅ"
else
echo "AV"
fi
;;
*)
echo "Användning: $(basename "$0") on|off|toggle|status" >&2
exit 1
;;
esac