diff options
Diffstat (limited to '.local/bin/sway-ws-util')
-rwxr-xr-x | .local/bin/sway-ws-util | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/.local/bin/sway-ws-util b/.local/bin/sway-ws-util new file mode 100755 index 0000000..e03bf24 --- /dev/null +++ b/.local/bin/sway-ws-util @@ -0,0 +1,31 @@ +#!/bin/sh + +curr_ws=$(swaymsg -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 [ "$1" = "switch" ] || [ "$1" = "move" ]; then + op="$1" + if [ "$2" = "prev" ]; then + dest_ws="$prev_ws" + elif [ "$2" = "next" ]; then + dest_ws="$next_ws" + else + echo "Usage: $0 $1 {prev|next} [follow]" + exit 1 + fi +else + echo "Usage: $0 {switch|move} {prev|next} [follow]" + exit 1 +fi + +if [ "$op" = "switch" ]; then + sway workspace "$dest_ws" +elif [ "$op" = "move" ]; then + sway move container to workspace "$dest_ws" + if [ "$3" = "follow" ]; then + sway workspace "$dest_ws" + fi +fi |