#!/bin/bash if ! tmux info &>/dev/null; then echo "========================================" echo " No Active Terminal Sessions Found" echo "========================================" echo "The tmux server is not running." exit 0 fi # Fetch unique sessions using sort -u to completely eliminate double listings sessions=$(tmux list-sessions -F "#S" 2>/dev/null | sort -u) if [ -z "$sessions" ]; then echo "No active terminal sessions found." exit 1 fi echo "========================================" echo " Active Terminal Sessions" echo "========================================" if_names=() while read -r line; do [[ -n "$line" ]] && if_names+=("$line") done <<< "$sessions" for i in "${!if_names[@]}"; do display_title=$(tmux display-message -t "${if_names[$i]}" -p "#T") current_cmd=$(tmux display-message -t "${if_names[$i]}" -p "#{pane_current_command}") if [ "$display_title" = "bash" ] || [ "$display_title" = "zsh" ] || [[ "$display_title" == *"Terminal"* ]]; then title_string="Running: $current_cmd" else title_string="Title: '$display_title' ($current_cmd)" fi echo "[$i] Session: ${if_names[$i]} -> $title_string" done echo "========================================" read -p "Select a session number to attach (or 'q' to quit): " choice if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -lt "${#if_names[@]}" ]; then tmux attach-session -t "${if_names[$choice]}" else echo "Exiting." fi