#!/bin/bash
#
# Detecta os monitores conectados e configura o xrandr
# NOTA: solo sirve para executar a man, o udev non se entera usando xrandr

# FunciĆ³n para verificar a cantidade de monitores conectados
check_monitors() {
    connected_monitors=$(xrandr --query | grep " connected" | wc -l)
    echo "$connected_monitors"
}

# Configuracion para un monitor
single_monitor() {
    xrandr --output eDP --primary --mode 1920x1200 --pos 0x0 --rotate normal \
        --output HDMI-A-0 --off --output DisplayPort-0 --off \
        --output DisplayPort-1 --off \
        --output DisplayPort-2 --off \
        --output DisplayPort-3 --off \
        --output DisplayPort-4 --off \
        --output DisplayPort-5 --off \
        --output DisplayPort-6 --off \
        --output DisplayPort-7 --off \
        --output DisplayPort-8 --off \
        --output DisplayPort-9 --off \
        --output DisplayPort-10 --off \
        --output DisplayPort-11 --off \
        --output DisplayPort-12 --off
}

# Configuracion para dos monitores
dual_monitor() {
    xrandr --output eDP-1 --mode 1920x1080 --pos 192x1080 --rotate normal \
        --output HDMI-2 --mode 2560x1080 --pos 0x0 --rotate normal
}

# Configuracion para multiples monitores
multi_monitor() {
    display_ports=$(xrandr --query | grep "DisplayPort" | grep " connected" | cut -d" " -f1)
    monitor_izquierdo=$(echo $display_ports | cut -d" " -f1)
    monitor_derecho=$(echo $display_ports | cut -d" " -f2)

    xrandr \
        --output eDP --auto --pos 863x1080 --rotate normal \
        --output $monitor_izquierdo --auto --pos 0x0 --rotate normal \
        --output $monitor_derecho --auto --pos 1920x0 --rotate normal
}

current_monitors=$(check_monitors)
if [ "$current_monitors" -eq 1 ]; then
    # Solo monitor do portatil
    single_monitor
elif [ "$current_monitors" -eq 1 ]; then
    # Monitor do portatil e monitor externo (casa)
    dual_monitor
else
    # Multiples monitores conectados (oficina)
    multi_monitor
fi