summaryrefslogtreecommitdiffstats
path: root/.local/bin/sway-ws-util
blob: e03bf243010b1ba30237da3a3f39e183e911eaa8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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