42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								size=${2:-'10'}
							 | 
						||
| 
								 | 
							
								dir=$1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Find current window mode
							 | 
						||
| 
								 | 
							
								is_tiled() {
							 | 
						||
| 
								 | 
							
								bspc query -T -n | grep -q '"state":"tiled"'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								# If the window is floating, move it
							 | 
						||
| 
								 | 
							
								if ! is_tiled; then
							 | 
						||
| 
								 | 
							
								#only parse input if window is floating,tiled windows accept input as is
							 | 
						||
| 
								 | 
							
								        case "$dir" in
							 | 
						||
| 
								 | 
							
								                west) switch="-w"
							 | 
						||
| 
								 | 
							
								                sign="-"
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                east) switch="-w"
							 | 
						||
| 
								 | 
							
								                sign="+"
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                north) switch="-h"
							 | 
						||
| 
								 | 
							
								                sign="-"
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                south) switch="-h"
							 | 
						||
| 
								 | 
							
								                sign="+"
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                esac
							 | 
						||
| 
								 | 
							
								 xdo resize ${switch} ${sign}${size}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Otherwise, window is tiled: switch with window in given direction
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								     case "$dir" in
							 | 
						||
| 
								 | 
							
								                west) bspc node @west -r -$size || bspc node @east -r -${size}
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                east) bspc node @west -r +$size || bspc node @east -r +${size}
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                north) bspc node @south -r -$size || bspc node @north -r -${size}
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                south) bspc node @south -r +$size || bspc node @north -r +${size}
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								                esac
							 | 
						||
| 
								 | 
							
								fi
							 |