#!/bin/sh
# nvidia-settings.sh
# 2014-01-26
# by Gernot Walzl
# Uses nvidia-settings to easily enable an external monitor.
# Tested on version 319.76.
# nvidia-settings -q ConnectedDisplays -d
INTERNAL="DFP-3"
EXTERNAL="CRT-0"
# xrandr -q
INTERNAL_XRANDR="DP-3"
EXTERNAL_XRANDR="VGA-0"
print_usage () {
echo "Usage:"
echo " $0 {primary|secondary|clone|extend}"
}
primary () {
xrandr -q
nvidia-settings --assign CurrentMetaMode="$INTERNAL: nvidia-auto-select, $EXTERNAL: NULL"
}
secondary () {
xrandr -q
nvidia-settings --assign CurrentMetaMode="$EXTERNAL: nvidia-auto-select, $INTERNAL: NULL"
}
clone () {
RESOLUTION="1024x768"
#RESOLUTION="1280x720"
xrandr -q
#nvidia-settings --assign CurrentMetaMode="$INTERNAL: nvidia-auto-select +0+0 { ViewPortIn=$RESOLUTION }, $EXTERNAL: nvidia-auto-select +0+0 { ViewPortIn=$RESOLUTION }"
#xrandr --output "$INTERNAL_XRANDR" --auto --scale-from "$RESOLUTION" --output "$EXTERNAL_XRANDR" --auto --scale-from "$RESOLUTION"
xrandr --output "$INTERNAL_XRANDR" --auto --scale-from "$RESOLUTION" --output "$EXTERNAL_XRANDR" --mode "$RESOLUTION"
}
extend () {
xrandr -q
nvidia-settings --assign CurrentMetaMode="$INTERNAL: nvidia-auto-select, $EXTERNAL: nvidia-auto-select"
}
case "$1" in
clone) clone ;;
primary) primary ;;
secondary) secondary ;;
clone) clone ;;
extend) extend ;;
*) print_usage ;;
esac