3 command -v xrandr &>/dev/null ||
4 (echo "please install xrandr" && exit 1)
7 mkdir -p ~/instantos/monitor &>/dev/null
10 xrandr | grep '[^s]connected' | grep -o '[0-9]*x[0-9]*+[0-9]*' | grep -o '[0-9]*$' >positions.txt
11 AMOUNT=$(cat positions.txt | wc -l)
13 # get monitor with highest resolution
14 RESOLUTIONS=$(xrandr | grep '[^s]connected' | grep -Eo '[0-9]{1,}x[0-9]{1,}\+[0-9]{1,}\+[0-9]{1,}' |
15 grep -o '[0-9]*x[0-9]*' | sed 's/ /\n/g')
16 OLDRES=$(cat resolutions.txt)
18 # see if resolution has changed
19 if ! [ "$RESOLUTIONS" = "$OLDRES" ]; then
20 echo "$RESOLUTIONS" >resolutions.txt
21 sed -i 's/ /\n/g' resolutions.txt
23 echo "Resolution change detected"
26 if [ $(cat resolutions.txt | sort -u | wc -l) = "1" ]; then
27 echo "resolutions identical"
28 head -1 resolutions.txt >max.txt
30 let PIXELS1="$(head -1 resolutions.txt | grep -o '^[0-9]*') * $(cat resolutions.txt | head -1 | grep -o '[0-9]*$')"
31 let PIXELS2="$(tail -1 resolutions.txt | grep -o '^[0-9]*') * $(cat resolutions.txt | head -1 | grep -o '[0-9]*$')"
32 if [ "$PIXELS1" -gt "$PIXELS2" ]; then
33 head -1 resolutions.txt >max.txt
35 tail -1 resolutions.txt >max.txt
39 # rebuild wallpaper after resolution change
41 if [ -z "$CHANGERES" ]; then
42 echo "no resolution change"
44 if [ -e ~/instantos/wallpapers ] && command -v instantwallpaper; then
45 rm -rf ~/instantos/wallpapers
46 instantwallpaper random
51 if [ "$AMOUNT" = "1" ]; then
52 echo "only one monitor found, further setup not needed"
56 if [ "$AMOUNT" -gt 2 ]; then
57 echo "only 2 monitors are supported"
60 echo "$AMOUNT monitors found"
63 xrandr | grep '[^s]connected' | grep -o '^[^ ]*' >names.txt
64 MONITOR1=$(head -1 positions.txt)
65 MONITOR2=$(tail -1 positions.txt)
67 if [ "$MONITOR1" -gt "$MONITOR2" ]; then
68 echo "Monitor 1 is ${MONITOR1}px on the right"
69 echo "$MONITOR1" >right.txt
71 echo "Monitor 2 is ${MONITOR2}px on the right"
72 echo "$MONITOR1" >right.txt