#! /bin/bash # Note for future configuration: use arandr and save layout (direct xrandr calls) # Needed exports and vars #export DISPLAY=$(w -h -s | grep ":[0-9]\W" | head -1 | awk '{print $3}') X_USER=$(w -h -s | grep ":[0-9]\W" | head -1 | awk '{print $1}') X_UID=$(id -u ${X_USER}) export XAUTHORITY=/home/${X_USER}/.Xauthority # Grep connected/disconnected monitors from xrandr EXTRA_DISPLAY=$(xrandr | grep " connected" | grep -v "eDP1" | awk '{print $1}' | tr '\n' ' ') DISCONNECTED_DISPLAY=$(xrandr | grep " disconnected" | awk '{print $1}') # Make sure disconnected display are off for display in ${DISCONNECTED_DISPLAY}; do xrandr --output ${display} --off done case "${EXTRA_DISPLAY}" in "") # Laptop screen only xrandr --output eDP1 --primary --mode 2560x1440 --pos 0x0 --rotate normal;; HDMI1\ ) # Extra display xrandr --output eDP1 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI1 --auto;; DP1-1\ DP1-2\ ) # Docked, for whatever reason, need an extra step to disable laptop screen and use both dock ports... xrandr --output eDP1 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output DP1-1 --mode 1920x1080 --pos 2560x180 --rotate normal --output DP1-2 --off xrandr --output eDP1 --off --output DP1-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP1-2 --mode 1920x1080 --pos 1920x0 --rotate normal;; *) echo "auto-display: unknown configuration";; esac