12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/bash
- #
- # toggle-display.sh
- #
- # Iterates through connected monitors in xrander and switched to the next one
- # each time it is run.
- #
- # get info from xrandr
- xStatus=`xrandr`
- connectedOutputs=$(echo "$xStatus" | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
- activeOutput=$(echo "$xStatus" | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
- connected=$(echo $connectedOutputs | wc -w)
- # initialize variables
- execute="xrandr "
- default="xrandr "
- i=1
- switch=0
- for display in $connectedOutputs
- do
- # build default configuration
- if [ $i -eq 1 ]
- then
- default=$default"--output $display --auto "
- else
- default=$default"--output $display --off "
- fi
- # build "switching" configuration
- if [ $switch -eq 1 ]
- then
- execute=$execute"--output $display --auto "
- switch=0
- else
- execute=$execute"--output $display --off "
- fi
- # check whether the next output should be switched on
- if [ $display = $activeOutput ]
- then
- switch=1
- fi
- i=$(( $i + 1 ))
- done
- # check if the default setup needs to be executed then run it
- echo "Resulting Configuration:"
- if [ -z "$(echo $execute | grep "auto")" ]
- then
- echo "Command: $default"
- `$default`
- else
- echo "Command: $execute"
- `$execute`
- fi
- echo -e "\n$(xrandr)"
|