57 lines
1.5 KiB
Bash
Executable file
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
|