summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorUrbain Vaes <urbain@vaes.uk>2017-07-21 22:16:04 +0100
committerUrbain Vaes <urbain@vaes.uk>2017-07-21 22:16:04 +0100
commit36f119b5e6946ddc6938fb7c8398f186aadcf07a (patch)
treec2b456a8d4b74b203b38a1831cea72dfce4a3cfc /bin
parent594504d0aeade8c499af5b6d521f677864c3357c (diff)
Add script for monitor (found on the web)
Diffstat (limited to 'bin')
-rwxr-xr-xbin/bin/monitor99
1 files changed, 99 insertions, 0 deletions
diff --git a/bin/bin/monitor b/bin/bin/monitor
new file mode 100755
index 0000000..e51b3bb
--- /dev/null
+++ b/bin/bin/monitor
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+XRANDR=$(which xrandr)
+
+MONITORS=( $( ${XRANDR} | awk '( $2 == "connected" ){ print $1 }' ) )
+
+
+NUM_MONITORS=${#MONITORS[@]}
+
+TITLES=()
+COMMANDS=()
+
+
+function gen_xrandr_only()
+{
+ selected=$1
+
+ cmd="xrandr --output ${MONITORS[$selected]} --auto "
+
+ for entry in $(seq 0 $((${NUM_MONITORS}-1)))
+ do
+ if [ $selected != $entry ]
+ then
+ cmd="$cmd --output ${MONITORS[$entry]} --off"
+ fi
+ done
+
+ echo $cmd
+}
+
+
+
+declare -i index=0
+TILES[$index]="Cancel"
+COMMANDS[$index]="true"
+index+=1
+
+
+for entry in $(seq 0 $((${NUM_MONITORS}-1)))
+do
+ TILES[$index]="Only ${MONITORS[$entry]}"
+ COMMANDS[$index]=$(gen_xrandr_only $entry)
+ index+=1
+done
+
+##
+# Dual screen options
+##
+for entry_a in $(seq 0 $((${NUM_MONITORS}-1)))
+do
+ for entry_b in $(seq 0 $((${NUM_MONITORS}-1)))
+ do
+ if [ $entry_a != $entry_b ]
+ then
+ TILES[$index]="Dual Screen ${MONITORS[$entry_a]} -> ${MONITORS[$entry_b]}"
+ COMMANDS[$index]="xrandr --output ${MONITORS[$entry_a]} --auto \
+ --output ${MONITORS[$entry_b]} --auto --left-of ${MONITORS[$entry_a]}"
+
+ index+=1
+ fi
+ done
+done
+
+
+##
+# Clone monitors
+##
+for entry_a in $(seq 0 $((${NUM_MONITORS}-1)))
+do
+ for entry_b in $(seq 0 $((${NUM_MONITORS}-1)))
+ do
+ if [ $entry_a != $entry_b ]
+ then
+ TILES[$index]="Clone Screen ${MONITORS[$entry_a]} -> ${MONITORS[$entry_b]}"
+ COMMANDS[$index]="xrandr --output ${MONITORS[$entry_a]} --auto \
+ --output ${MONITORS[$entry_b]} --auto --same-as ${MONITORS[$entry_a]}"
+
+ index+=1
+ fi
+ done
+done
+
+
+##
+# Generate entries, where first is key.
+##
+function gen_entries()
+{
+ for a in $(seq 0 $(( ${#TILES[@]} -1 )))
+ do
+ echo $a ${TILES[a]}
+ done
+}
+
+# Call menu
+SEL=$( gen_entries | rofi -dmenu -p "Monitor Setup:" -a 0 -no-custom | awk '{print $1}' )
+
+# Call xrandr
+$( ${COMMANDS[$SEL]} )