44 lines
		
	
	
		
			967 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			967 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								# Originally by https://github.com/windelicato/
							 | 
						||
| 
								 | 
							
								# edited beyound recognition
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								follower() {
							 | 
						||
| 
								 | 
							
								if [ "$(pgrep -cx windowgrabber)" = 1 ] ; then
							 | 
						||
| 
								 | 
							
									bspc config pointer_follows_focus false
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								trap 'follower' INT TERM QUIT EXIT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								size=${2:-'20'}
							 | 
						||
| 
								 | 
							
								dir=$1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bspc config pointer_follows_focus true
							 | 
						||
| 
								 | 
							
								# Find current window mode
							 | 
						||
| 
								 | 
							
								is_floating() {
							 | 
						||
| 
								 | 
							
								bspc query -T -n | grep -q '"state":"floating"'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								# If the window is floating, move it
							 | 
						||
| 
								 | 
							
								if is_floating; then
							 | 
						||
| 
								 | 
							
								#only parse input if window is floating,tiled windows accept input as is
							 | 
						||
| 
								 | 
							
								        case "$dir" in
							 | 
						||
| 
								 | 
							
								  		west) switch="-x"
							 | 
						||
| 
								 | 
							
								  		sign="-"
							 | 
						||
| 
								 | 
							
								        	;;
							 | 
						||
| 
								 | 
							
								  		east) switch="-x"
							 | 
						||
| 
								 | 
							
								         	sign="+"
							 | 
						||
| 
								 | 
							
								       		;;
							 | 
						||
| 
								 | 
							
								  		north) switch="-y"
							 | 
						||
| 
								 | 
							
								         	sign="-"
							 | 
						||
| 
								 | 
							
								        	;;
							 | 
						||
| 
								 | 
							
								  		*) switch="-y"
							 | 
						||
| 
								 | 
							
								     		sign="+"
							 | 
						||
| 
								 | 
							
								     		;;
							 | 
						||
| 
								 | 
							
								 		esac
							 | 
						||
| 
								 | 
							
								 xdo move ${switch} ${sign}${size}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Otherwise, window is tiled: switch with window in given direction
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								        bspc node -n ${dir}.!automatic || bspc node -s ${dir} ||  bspc node -m ${dir} && bspc monitor -f
							 | 
						||
| 
								 | 
							
								fi
							 |