script-linux/monitor-display

36 lines
1.1 KiB
Plaintext
Raw Permalink Normal View History

2024-02-29 14:49:07 +01:00
#!/bin/bash
mode=$(echo -e "same\ndifferent" | dmenu -p "monitors layout:")
2024-03-03 22:52:11 +01:00
#monitors=$(xrandr --listmonitors | sort -r | cut -d' ' -f6)
monitors=$(xrandr -q | grep "^[^ ]" | cut -d' ' -f1 | grep -v Screen)
2024-02-29 14:49:07 +01:00
main=$(echo $monitors | tr ' ' '\n' | dmenu -p "which monitor is main:")
monitors=$(echo $monitors | sed "s/$main//")
if [[ $mode == "same" ]]; then
for m in $monitors; do
xrandr --output $m --auto --same-as $main --mode 1920x1080
done
elif [[ $mode == "different" ]]; then
for m in $monitors; do
2024-03-03 22:52:11 +01:00
direction=$(echo -e "left\nright\nabove\nbelow\nsame\nnone" | dmenu -p "monitor '$m' direction from '$main'")
2024-02-29 14:49:07 +01:00
case $direction in
"left" | "right")
direction="--$direction-of"
;;
"above" | "below")
direction="--$direction"
;;
"same")
direction="--$direction-as"
;;
2024-03-03 22:52:11 +01:00
"none")
continue
;;
2024-02-29 14:49:07 +01:00
esac
xrandr --output $main --primary --mode 1920x1080 --output $m --mode 1920x1080 $direction $main
done
fi