summaryrefslogtreecommitdiffstats
path: root/.local/bin/b-ws-util
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2021-04-03 21:50:36 -0400
committerAmin Bandali <bandali@gnu.org>2021-04-03 21:50:36 -0400
commitbfe53d9b8ee51e483d69763c0488d7da88eab06b (patch)
tree31d682d524865bad399ed0101800794e2ff0c6db /.local/bin/b-ws-util
parent17d2cfa08301bfb62cce5a02feb8ad7acf9b0f7c (diff)
downloadconfigs-bfe53d9b8ee51e483d69763c0488d7da88eab06b.tar.gz
configs-bfe53d9b8ee51e483d69763c0488d7da88eab06b.tar.xz
configs-bfe53d9b8ee51e483d69763c0488d7da88eab06b.zip
Add some missing bins
Diffstat (limited to '')
-rwxr-xr-x.local/bin/b-ws-util40
1 files changed, 40 insertions, 0 deletions
diff --git a/.local/bin/b-ws-util b/.local/bin/b-ws-util
new file mode 100755
index 0000000..df921f7
--- /dev/null
+++ b/.local/bin/b-ws-util
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+if [ "$1" = "i3" ]; then
+ msgcmd=i3-msg
+elif [ "$1" = "sway" ]; then
+ msgcmd=swaymsg
+else
+ echo "Usage: $0 {i3|sway} {switch|move} {prev|next} [follow]"
+ exit 1
+fi
+
+curr_ws=$("$msgcmd" -t get_workspaces | jq -r '.[] | select(.focused==true).name')
+[ "$curr_ws" -eq 1 ] && prev_ws=10 || prev_ws=$((curr_ws-1))
+[ "$curr_ws" -eq 10 ] && next_ws=1 || next_ws=$((curr_ws+1))
+dest_ws=-1
+op=-1
+
+if [ "$2" = "switch" ] || [ "$2" = "move" ]; then
+ op="$2"
+ if [ "$3" = "prev" ]; then
+ dest_ws="$prev_ws"
+ elif [ "$3" = "next" ]; then
+ dest_ws="$next_ws"
+ else
+ echo "Usage: $0 $1 $2 {prev|next} [follow]"
+ exit 1
+ fi
+else
+ echo "Usage: $0 $1 {switch|move} {prev|next} [follow]"
+ exit 1
+fi
+
+if [ "$op" = "switch" ]; then
+ i3 workspace "$dest_ws"
+elif [ "$op" = "move" ]; then
+ i3 move container to workspace "$dest_ws"
+ if [ "$4" = "follow" ]; then
+ i3 workspace "$dest_ws"
+ fi
+fi