#!/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