diff options
author | Vikas Kushwaha <dev@vikas.rocks> | 2024-11-21 13:30:52 +0530 |
---|---|---|
committer | Vikas Kushwaha <dev@vikas.rocks> | 2024-11-21 13:30:52 +0530 |
commit | 5c916d69d457101326803eb076a746060e3618cf (patch) | |
tree | d6fce3256eede1c1bf78fb6a1be75b9cc4b84cee /.local/bin/desktop/setdp |
Moved from github
Diffstat (limited to '.local/bin/desktop/setdp')
-rwxr-xr-x | .local/bin/desktop/setdp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/.local/bin/desktop/setdp b/.local/bin/desktop/setdp new file mode 100755 index 0000000..48c6a7a --- /dev/null +++ b/.local/bin/desktop/setdp @@ -0,0 +1,36 @@ +#!/bin/sh + +displays="$(xrandr | grep "^\S* connected" | cut -d\ -f1)" +display_count="$(echo "$displays" | wc -l)" + +[ "$display_count" -gt 2 ] && + { echo "Too many displays to configure" >&2; exit 1; } + +set -- + + +if [ "$display_count" = 2 ]; then + + for display in $displays; do + case "$display" in + eDP*) export PRIMARY="$display"; set -- "$@" --output "$display" --mode 1920x1080 --primary --pos 0x270 ;; + HDMI*) set -- "$@" --output "$display" --mode 1920x1080 --pos 1920x0 --scale "1.25x1.25" ;; + esac + done + +else + + for display in $displays; do + case "$display" in + eDP*) set -- "$@" --output "$display" --primary --mode 1920x1080 --scale "1.1x1.1" ;; + HDMI*) set -- "$@" --output "$display" --mode 1366x768 --scale "1.25x1.25" ;; + LVDS*) set -- "$@" --output "$display" --primary ;; + DP*) set -- "$@" --output "$display" --primary --scale "1.1x1.1" ;; + esac + done + +fi + + +eval "xrandr --auto $*" + |