Ejemplo de script de XRANDR

#!/bin/bash
#Variables estáticas
XRANDR=/usr/bin/xrandr
NOTEBOOK_MONITOR="eDP-1"
MODLINE_LABEL_1280="1280x1024_docking"
MODLINE_1280="$(/usr/bin/cvt 1280 1024 | grep Modeline)"; MODLINE_1280=${MODLINE_1280:26}

#Variables dinamicas
OUTPUT_1280_A=$($XRANDR | grep "1280x1024 " -B1| grep DP | grep -v dis| awk '{print $1}'| head -n 1)
if [ "$($XRANDR | grep "1280x1024 " -B1| grep DP | grep -v dis| awk '{print $1}'| wc -l)" -eq "2" ] ; then
    OUTPUT_1280_B=$($XRANDR | grep "1280x1024 " -B1| grep DP | grep -v dis| awk '{print $1}'| tail -n 1)
else
    OUTPUT_1280_B=""
fi

if [ ! -z "$OUTPUT_1280_B" ] ; then
#Casos con dos monitores y el de la notebook apagado
    $XRANDR --output  $NOTEBOOK_MONITOR --off
    $XRANDR --newmode $MODLINE_LABEL_1280 $MODLINE_1280
    $XRANDR --addmode $OUTPUT_1280_A $MODLINE_LABEL_1280
    $XRANDR --addmode $OUTPUT_1280_B $MODLINE_LABEL_1280
    $XRANDR --output  $OUTPUT_1280_A --preferred
    $XRANDR --output  $OUTPUT_1280_B --preferred
    $XRANDR --output  $OUTPUT_1280_A --mode $MODLINE_LABEL_1280
    $XRANDR --output  $OUTPUT_1280_B --mode $MODLINE_LABEL_1280
    $XRANDR --output  $OUTPUT_1280_B --right-of $OUTPUT_1280_A
else
#Casos con un monitor externo y el de la notebook prendido
    $XRANDR --output  $NOTEBOOK_MONITOR --preferred
    $XRANDR --newmode $MODLINE_LABEL_1280 $MODLINE_1280
    $XRANDR --addmode $OUTPUT_1280_A $MODLINE_LABEL_1280
    $XRANDR --output  $OUTPUT_1280_A --mode $MODLINE_LABEL_1280 --crtc 0
    $XRANDR --output  $OUTPUT_1280_A --primary
    $XRANDR --output  $NOTEBOOK_MONITOR --right-of $OUTPUT_1280_A
fi
Scroll al inicio