Files
LA-Shell-Lavora-per-Noi/cloneScreens
stefano.salvi 990b01357e cloneScreens
Lo script descritto nelle slide
2025-11-06 15:30:13 +00:00

68 lines
1.9 KiB
Bash

#!/bin/bash
function setClone {
PRIMARY=$1
SECONDARY=$2
while read -r l
do
if echo $l | grep -Eq "^[a-zA-Z][a-zA-Z0-9-]"
then
DEV=`echo $l | sed -e "s/ .*$//"`
MODELIST=`echo ${DEV} | sed -e "s/-/_/g"`_MODES
typeset -n CML=$MODELIST
elif echo $l | grep -q "^[0-9]"
then
MODE=`echo $l | sed -e "s/ .*$//"`
CML="$CML $MODE"
fi
done
PRIMARY_LIST=`echo ${PRIMARY} | sed -e "s/-/_/g"`_MODES
SECONDARY_LIST=`echo ${SECONDARY} | sed -e "s/-/_/g"`_MODES
typeset -n PRIMARY_MODES=$PRIMARY_LIST
typeset -n SECONDARY_MODES=$SECONDARY_LIST
MODE=""
for pm in $PRIMARY_MODES
do
for sm in $SECONDARY_MODES
do
if [ $pm = $sm -a -z $MODE ]
then
MODE=$pm
fi
done
done
if [ -z "$MODE" ]
then
echo Nessun modo comune ERRORE!
exit 2
else
echo $MODE
xrandr --output $PRIMARY --mode $MODE
xrandr --output $SECONDARY --mode $MODE
xrandr --output $SECONDARY --same-as $PRIMARY
fi
}
POSITION='same-as'
if [ -n "$1" ]
then
if [ $1 = '-l' ]
then
POSITION='left-of'
fi
if [ $1 = '-r' ]
then
POSITION='right-of'
fi
fi
PRIMARY=`xrandr | grep " connected" | grep primary | sed -e "s/ .*$//"`
SECONDARY=`xrandr | grep " connected" | grep -v primary | sed -e "s/ .*$//"`
if [ $POSITION = 'same-as' ]
then
xrandr | setClone $PRIMARY $SECONDARY
else
xrandr --output $SECONDARY --$POSITION $PRIMARY
fi