#!/bin/bash lines=$(dialog --stdout --print-maxsize|tr -d " "|sed -e "s/.*://"|cut -d\, -f1) if [ $? = 1 ];then lines=20;fi columns=$(dialog --stdout --print-maxsize|tr -d " "|sed -e "s/.*://"|cut -d\, -f2) if [ $? = 1 ];then columns=60;fi changesize () { line1=$(xrandr|grep -n " connected"|grep ":$display "|cut -d: -f1) line2=$(xrandr|grep -n "connected"|grep -A1 ":$display "|tail -n1|cut -d: -f1) if [ "$line1" = "$line2" ];then line2=$(xrandr|wc -l) else line2=$(expr $line2 - 1) fi sizes=$(xrandr|sed -n -e "$(expr $line1 + 1),${line2}p"|tr -s " "|cut -d " " -f2) mes2="" for a in $sizes;do mes2="$mes2 $a $a" done size=$(dialog --stdout --no-shadow --menu "Select resolution of the screen $display" $lines $columns $(echo $sizes|tr " " '\n'|wc -l) $mes2) if [ $? = 1 ];then echo "You selected cancel";exit 0;fi xrandr --output $display --mode $size } location () { mes2="same-as same above above below below left-of left right-of right" location=$(dialog --stdout --no-shadow --menu "Where do you want to place $display relative to the former $displayold" $lines $columns 5 $mes2) if [ $? = 1 ];then echo "You selected cancel";exit 0;fi xrandr --output $display --$location $displayold } displaysall="$(xrandr|grep " connected")" i=0 while [ $(echo "$displaysall"|wc -l) -gt 1 ];do if [ $i -gt 0 ];then mes1="next";else mes1="the first";fi mes2="" displays=$(echo "$displaysall"|cut -d " " -f1) for a in $displays;do mes2="$mes2 $a $(echo "$displaysall"|grep "$a "|cut -d " " -f2-|tr " " "_")" done display=$(dialog --no-shadow --stdout --menu "Select $mes1 screen to be configured" $lines $columns $(echo "$displaysall"|wc -l) $mes2) if [ $? = 1 ];then echo "You selected cancel";exit 0;fi changesize if [ $i -gt 0 ];then location fi displaysall="$(echo "$displaysall"|grep -v "$display ")" i=$(expr $i + 1) displayold=$display done display=$(echo "$displaysall"|cut -d " " -f1) changesize if [ $i -gt 0 ];then location fi