[system] feat: add external mode to displayselect

in case of laptop, one may be interested in disconnecting the internal
display, if you're docked for instance

this mode allows to chose an internal display to be disabled, and then
configure a setup as in default mode
This commit is contained in:
David JULIEN 2022-11-25 16:44:41 +01:00
parent d62bd902a0
commit 81e5498349
1 changed files with 15 additions and 3 deletions

View File

@ -44,17 +44,28 @@ twoscreen() { # If multi-monitor is selected and there are two screens.
}
default() {
primary=$(echo "$allposs" | grep -w "connected primary" | awk '{printf $1}')
primary=$(echo "$allposs" | grep -w "connected primary" | awk '{ print $1 }')
secondary=$(echo "$screens" | grep -v -w "$primary")
direction="left"
rotation="normal"
setup
}
external() {
internal=$(echo "$screens" | dmenu -i -p "Select internal display:")
screens=$(echo "$screens" | grep -v -w "eDP-1")
primary=$(echo "$screens" | dmenu -i -p "Select primary display:")
xrandr --output $primary --primary
default
}
setup() {
[ -z "$mode" ] && mode="auto"
xrandr --output "$primary" --auto --scale 1.0x1.0 \
xrandr --output "$primary" --primary --auto --scale 1.0x1.0 \
--output "$secondary" --"$direction"-of "$primary" --$mode
[ -n "$internal" ] && xrandr --output "$internal" --off
}
morescreen() { # If multi-monitor is selected and there are more than two screens.
@ -79,9 +90,10 @@ allposs=$(xrandr -q | grep -w "connected")
screens=$(echo "$allposs" | awk '{print $1}')
# Get user choice including multi-monitor and manual selection:
chosen=$(printf "default\\nmulti-monitor\\n%s\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") &&
chosen=$(printf "default\\nexternal\\nmulti-monitor\\n%s\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") &&
case "$chosen" in
"default") default ;;
"external") external ;;
"manual selection") arandr ; exit ;;
"multi-monitor") multimon ;;
*) xrandr --output "$chosen" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "$chosen" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ') ;;