X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=laptop-xrandr;h=6701e74525d7c2203a4a03a5fc9c533596b04ec9;hb=f27b67a1dfa58b5f101bba607b2f91a73e65299e;hp=417c9f7694d71c7d9b3c956e197e031af53cf39b;hpb=50f25d1eec109c4596cfc638c9a7c98da0f0b5d0;p=distro-setup diff --git a/laptop-xrandr b/laptop-xrandr index 417c9f7..6701e74 100755 --- a/laptop-xrandr +++ b/laptop-xrandr @@ -22,19 +22,35 @@ set -e; . /usr/local/lib/bash-bear; set +e +# eg eDP-1 connected primary +laptop_out=$(xrandr | awk '$3 == "primary" {print $1}') +output=$(xrandr | grep -E "^(HDMI|DP)[^ ]* connected [0-9]" | awk '{print $1}' ||:) -output=HDMI2 -output=DP1 +left_right_arg=--right-of +if [[ $output ]]; then + + # identify monitors that are always on the left. + if [[ $output == HDMI2 && $(sha256sum /dev/null; then - xrandr --auto -else xrandr --output $output --off sleep 2 - xrandr --output $output --right-of eDP1 --mode 3840x2160 + mode=$(xrandr | grep -A1 -E "^$output" | tail -n1 | awk '{print $1}') + # eg: 3840x2160 + echo mode=$mode + xrandr --output $output $left_right_arg $laptop_out --mode $mode for i in 1 2 4 5 6 7 8 9 10; do - # if the workspace is already there, this will fail + # if the workspace is already there, this will fail. + # if the workspace doesn't exist yet, it fails with: + # ERROR: No output matched i3-msg '[workspace="'$i'"]' move workspace to output $output ||: done +else + xrandr --auto + fi