56 lines
		
	
	
		
			994 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			994 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/zsh
 | |
| source "$HOME/.config/wryn/env.zsh"
 | |
| NATIVE_MONITOR='eDP1'
 | |
| 
 | |
| GET_PRIMARY_MONITOR() {
 | |
| 	xrandr \
 | |
| 		| grep 'primary' \
 | |
| 		| awk '{print $1;}' \
 | |
| 		| head -n 1
 | |
| }
 | |
| 
 | |
| PRIMARY_MONITOR=$(GET_PRIMARY_MONITOR)
 | |
| 
 | |
| GET_ALL_EXTERNAL_MONITORS() {
 | |
| 	xrandr \
 | |
| 		| grep ' connect' \
 | |
| 		| awk '{print $1;}' \
 | |
| 		| grep -v "$NATIVE_MONITOR" \
 | |
| 		2>/dev/null
 | |
| }
 | |
| GET_DEFAULT_EXTERNAL_MONITOR() {
 | |
| 	GET_ALL_EXTERNAL_MONITORS | head -n 1
 | |
| }
 | |
| EXTERNAL_MONITOR=$(GET_DEFAULT_EXTERNAL_MONITOR)
 | |
| 
 | |
| DISCONNECT_OTHER() {
 | |
| 	local SFX="$1"
 | |
| 
 | |
| 	local INACTIVE_MONITORS=$(\
 | |
| 		xrandr --listmonitors \
 | |
| 			| sed '1d' | awk '{print $NF;}' \
 | |
| 			| grep -v "^$(GET_PRIMARY_MONITOR)$"
 | |
| 		)
 | |
| 
 | |
| 	for ACTIVE_MONITOR in ${@:2}
 | |
| 	do
 | |
| 		INACTIVE_MONITORS=$(echo $INACTIVE_MONITORS | grep -v "^$ACTIVE_MONITOR$")
 | |
| 	done
 | |
| 
 | |
| 	local MONITOR
 | |
| 	for MONITOR in $INACTIVE_MONITORS
 | |
| 	do
 | |
| 		xrandr --output $MONITOR --off
 | |
| 	done
 | |
| 
 | |
| 	sleep 1
 | |
| 	$DOTWRYN/bin/set-background random
 | |
| 
 | |
| 	[ $SFX ] && ( PLAY_SFX $SFX ) &
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| NOTIFY() {
 | |
| 	notify-send 'xrandr screenlayout' $@
 | |
| }
 |