#!/bin/sh

export DISPLAY=:0

INTERNAL=LVDS1
CONLIST=$(xrandr --query | grep " connected" | awk '{ print $1 }' | grep -v $INTERNAL)
OFFLIST=$(xrandr --query | grep "disconnected" | awk '{ print $1 }')

if [ -z $CONLIST ]; then
    printf 'No external displays found, activating %s\n' "$INTERNAL"
    xrandr --output $INTERNAL --auto
    doas sysctl -q machdep.lidaction=1 # hibernate on lid close
else
    printf 'External displays found, deactivating %s\n' "$INTERNAL"
    xrandr --output $INTERNAL --off --noprimary
    doas sysctl -q machdep.lidaction=0 # do not hibernate on lid close
fi

for _dev in $CONLIST;
do
    printf 'Turning on connected output: %s\n' "$_dev"
    xrandr --output $_dev --auto
done

for _dev in $OFFLIST;
do
    printf 'Turning off disconnected output: %s\n' "$_dev"
    xrandr --output $_dev --off
done
