From 88f2bc0c0aa848a1bba915afaa57adf04a330f9e Mon Sep 17 00:00:00 2001 From: InigoGutierrez Date: Sat, 3 Sep 2022 16:16:32 +0200 Subject: Scripts for bspwm. --- bspc/bspcDirectionFocus.sh | 31 +++++++++++++++++++++++++++++++ bspc/bspcToggleSticky.sh | 8 ++++++++ 2 files changed, 39 insertions(+) create mode 100755 bspc/bspcDirectionFocus.sh create mode 100755 bspc/bspcToggleSticky.sh (limited to 'bspc') 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 -- cgit v1.2.1