From 990b01357e1945e3c4812a3990faab351b31ad66 Mon Sep 17 00:00:00 2001 From: "stefano.salvi" Date: Thu, 6 Nov 2025 15:30:13 +0000 Subject: [PATCH] cloneScreens Lo script descritto nelle slide --- cloneScreens | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 cloneScreens diff --git a/cloneScreens b/cloneScreens new file mode 100644 index 0000000..e04d280 --- /dev/null +++ b/cloneScreens @@ -0,0 +1,67 @@ +#!/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 +