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