#!/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