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 |