diff options
-rwxr-xr-x | bspc/bspcDirectionFocus.sh | 31 | ||||
-rwxr-xr-x | bspc/bspcToggleSticky.sh | 8 |
2 files changed, 39 insertions, 0 deletions
diff --git a/bspc/bspcDirectionFocus.sh b/bspc/bspcDirectionFocus.sh new file mode 100755 index 0000000..5222298 --- /dev/null +++ b/bspc/bspcDirectionFocus.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# bspcDirectionFocus.sh: Directionally select node with same floating state +# +# Usage: bspcDirectionFocus.sh DIRECTION + +usageMessage="Usage: bspcDirectionFocus.sh DIRECTION" + +direction="$1" + +if ! echo "$direction" | grep -Eq '(west)|(south)|(north)|(east)'; then + echo "$usageMessage" 1>&2 + exit 1 +fi + +status="$(bspc wm --get-status)" + +# If floating (TF) select floating in direction. +# Else if monocle (LM) and west or east select previous or next local window in direction. +# Else select non-floating in direction. +if echo "$status" | grep -q ':TF:'; then + bspc node --focus "$direction".floating; +elif echo "$status" | grep -q ':LM:'; then + if [ "$direction" = "west" ]; then + bspc node --focus prev.local.window.!floating + elif [ "$direction" = "east" ]; then + bspc node --focus next.local.window.!floating + fi +else + bspc node --focus "$direction".!floating +fi diff --git a/bspc/bspcToggleSticky.sh b/bspc/bspcToggleSticky.sh new file mode 100755 index 0000000..c2aefbb --- /dev/null +++ b/bspc/bspcToggleSticky.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# bspcToggleSticky.sh: Toggles the sticky bit of the focused window. A sticky +# window stays in the focused desktop of its monitor. +# +# Usage: bspcToggleSticky.sh + +bspc node --flag sticky |