1#!/usr/bin/env bash 2 3jq_cmd="recurse(.nodes[];.nodes!=null) |" 4 5cur_ws_id="$(@wmmsg@ -t get_workspaces | jq '.[] | select(.focused==true).id')" 6jq_cmd+="select(.id==$cur_ws_id).nodes | .[] | recurse(.nodes[];.nodes!=null) | select(.nodes==[])" 7 8windows="$(@wmmsg@ -t get_tree | jq -r "$jq_cmd")" 9 10echo "$windows" 11 12windows_focused=($(echo "$windows" | jq '.focused')) 13windows_id=($(echo "$windows" | jq '.id')) 14 15echo "${windows_focused[@]}" 16echo "${windows_id[@]}" 17 18i=0 19for focused in "${windows_focused[@]}"; do 20 if [ "$focused" == "true" ]; then 21 break 22 fi 23 ((i++)) 24done 25echo $i 26 27if [[ "$1" == "back" ]]; then 28 ((i--)) 29elif [[ "$1" == "forward" ]]; then 30 ((i++)) 31fi 32 33 34i=$(((i % ${#windows_focused[@]}))) 35 36id="${windows_id[$i]}" 37echo "$id" 38$(dirname "$0")/focus_on_id.sh "$id" 39