#!/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
