21 lines
778 B
Text
21 lines
778 B
Text
|
#!/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
|