summaryrefslogtreecommitdiff
path: root/bin/workspace
blob: 5a95fdea9efe1ed56c28bed5531f0fc23fa93213 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/zsh

workspaces=$(i3-msg -t get_workspaces | grep -Po '"name":.*?[^\\]"' | sed 's/"name":"\([^"]\+\)"/\1/g')
used_numbers=$(echo $workspaces | awk 'BEGIN { FS = ":" } ; { print $1 }')
max_number=$(echo $used_numbers | tail -1)
largest_gap=$(echo $used_numbers | awk '$1!=p+1{print p+1}{p=$1}')
[[ -z $largest_gap ]] && new_number=$(($max_number +  1)) || new_number=$largest_gap

target=$(echo $workspaces | dmenu -i -sf green -p "Go to workspace:")
[[ -z $target ]] && exit
[[ ! $target = [0-9]:* ]] && target=$new_number:$target

exec i3-msg workspace $target