summaryrefslogtreecommitdiff
path: root/switchto_monitor_if_connected.sh
blob: b5f4a3f5d08becf48d043f32e05c5bff6ca6eccd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh
case $XDG_SESSION_TYPE in
	x11)
		INT_OUT=$(xrandr|awk '/[0-9]\sconnected/ && (/^LVDS/||/^eDP/) {print $1}')
		EXT_OUT=$(xrandr|awk '/[0-9]\sconnected/ && !/^LVDS/&&!/^eDP/ {print $1}')
		[ -z "$EXT_OUT" ] && {
			printf "%s %s\n" "No ext output, enabling internal" $INT_OUT
			xrandr --output $INT_OUT --auto
			exit 0
		}
		printf "%s %s\n" "External output is:" $EXT_OUT
		printf "%s %s\n" "Internal output is:" $INT_OUT
		xrandr --output $INT_OUT --off --output $EXT_OUT --auto
	;;
	wayland)
		get_outs="swaymsg -p -t get_outputs"
		INT_OUT=$($get_outs|awk '/^Ou.*\s(LVDS|eDP)/ {print $2}')
		EXT_OUT=$($get_outs|awk '/^Ou/ && !/LVDS/ && !/eDP/ {print $2}')
		[ -z "$EXT_OUT" ] && {
			printf "%s %s\n" "No ext output, enabling internal" $INT_OUT
			swaymsg output $INT_OUT enable
			exit 0
		}
		printf "%s %s\n" "External output is:" $EXT_OUT
		printf "%s %s\n" "Internal output is:" $INT_OUT
		printf "Switching to %s\n" $EXT_OUT
		swaymsg output $EXT_OUT enable && swaymsg output $INT_OUT disable
	;;
esac