This is a first dotfiles config. I think I have a lot more to add tho...
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # Originally by https://github.com/windelicato/
 | |
| 
 | |
| size=${2:-'20'}
 | |
| dir=$1
 | |
| 
 | |
| transplanter() {
 | |
| 	bspc node ${dir} -p south && bspc node -n ${dir}
 | |
| }
 | |
| 
 | |
| northplanter() {
 | |
| 	bspc node north -p north && bspc node -n north
 | |
| }
 | |
| 
 | |
| rootplanter() {
 | |
| 	bspc node @/ -p ${dir} && bspc node -n @/ || bspc node -s next.local && bspc node -n @/
 | |
| 	bspc node @/ -p cancel
 | |
| }
 | |
| 
 | |
| 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
 | |
| 	 if [[ $(bspc query -N -n .local.\!floating | wc -l) != 2 ]]; then 
 | |
| 	 case "$dir" in
 | |
|   		north) northplanter || rootplanter
 | |
|         	;;
 | |
|   		*) transplanter || rootplanter
 | |
|      		;;
 | |
|  	 esac
 | |
|  	 else
 | |
|  	 case "$dir" in
 | |
|   		east) bspc node -s east || bspc query -N -n west.local || \
 | |
|         if bspc query -N -n south.local ; then
 | |
|         	bspc node @/ -R 90
 | |
|         	else
 | |
|         	bspc node @/ -R 270
 | |
|         fi
 | |
|         	;;
 | |
|         west) bspc node -s west || bspc query -N -n east.local || \
 | |
|         if bspc query -N -n north.local ; then
 | |
|         	bspc node @/ -R 90
 | |
|         	else
 | |
|         	bspc node @/ -R 270
 | |
|         fi
 | |
|         	;;
 | |
|         south) bspc node -s south || bspc query -N -n north.local || \
 | |
|         if bspc query -N -n west.local ; then
 | |
|         	bspc node @/ -R 90
 | |
|         	else
 | |
|         	bspc node @/ -R 270
 | |
|         fi 
 | |
|         	;;
 | |
|   		*) bspc node -s north || bspc query -N -n south.local || \
 | |
|         if bspc query -N -n west.local ; then
 | |
|         	bspc node @/ -R 270
 | |
|         	else
 | |
|         	bspc node @/ -R 90
 | |
|         fi
 | |
|      		;;
 | |
|      esac
 | |
|      fi
 | |
| fi
 |