nsbin/xoutput
Nico Schottelius 28db94c9fd Derive primary
2018-04-03 12:42:39 +02:00

57 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
# Your Name Here - where is again the blog to read about this very cool script?
# Modified by Nico Schottelius, Mon Nov 17 18:26:34 CET 2014
mode="${1:-normal}"
location="${2:-above}"
resolution="${3:-1024x768}"
primary="${4:-$(xrandr | awk '/primary/ { print $1 }')}"
xrandr=$(xrandr)
disconnected=$(echo "$xrandr" | grep disconnected | cut -d' ' -f1)
secondary=$(echo "$xrandr" | grep ' connected' | cut -d' ' -f1 | grep -v $primary)
die_error() {
echo "[Error] $@" >&2
exit 1
}
disconnected_off=""
for output in $disconnected; do
disconnected_off="$disconnected_off --output $output --off"
done
_xrandr() {
echo "xrandr $disconnected_off $@"
xrandr $disconnected_off $@
echo "xrandr return code: $?"
}
case "$mode" in
beamer)
[ -n "$secondary" ] || die "No secondary output detected."
_xrandr --output $primary --mode $resolution --primary \
--output $secondary --same-as $primary
;;
reset)
args="--output $primary --auto --primary"
[ -n "$secondary" ] && args="$args --output $secondary --off"
_xrandr $args
;;
normal)
args="--output $primary --auto --primary"
[ -n "$secondary" ] && args="$args --output $secondary --auto --${location} $primary"
_xrandr $args
;;
extern)
if [ -n "$secondary" ]; then
args="--output $secondary --auto --primary"
args="$args --output $primary --off"
_xrandr $args
else
echo "No secondary output found, aborting." >&2
exit 1
fi
;;
esac