#!/usr/bin/env bash
# create a tree-style view
# of all open tmux panes
# and the command they are currently running

tmux ls -F'#{session_id}' | while read -r s; do
  S=$(tmux ls -F'#{session_id}#{session_name}: #{T:tree_mode_format}' | grep ^"$s")
  session_info=${S##$s}
  session_name=$(echo "$session_info" | cut -d ':' -f 1)
  if [[ -n "$1" ]] && [[ "$1" == "$session_name" ]]; then
    echo -e "\033[1;34m$session_info\033[0m"
    tmux lsw -t"$s" -F'#{window_id}' | while read -r w; do
      W=$(tmux lsw -t"$s" -F'#{window_id}#{T:tree_mode_format} - #{pane_current_command}' | grep ^"$w")
      H=$(tmux lsw -t"$s" -F'#{window_id}#H' | grep ^"$w")
      echo "  ﬌ ${W##$w}" | sed "s/\"${H##$w}\" //"
    done
  else
    echo -e "\033[1m$session_info\033[0m"
  fi
done