dotfiles/bin/monitors

59 lines
1.9 KiB
Plaintext
Raw Permalink Normal View History

2024-04-25 12:20:47 +02:00
#!/bin/bash
#
# Detecta os monitores conectados e configura o xrandr
2024-04-25 13:35:44 +02:00
# NOTA: solo sirve para executar a man, o udev non se entera usando xrandr
2024-04-25 12:20:47 +02:00
# 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() {
2024-04-25 13:08:39 +02:00
display_ports=$(xrandr --query | grep "DisplayPort" | grep " connected" | cut -d" " -f1)
2024-04-25 12:20:47 +02:00
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