function ts --description "Tmux session manager with fuzzy search and quick jump" echo -e "" # 1. Show Active Sessions set -l active_sessions (tmux list-sessions 2>/dev/null) if test -n "$active_sessions" echo -e (set_color 99ff99)"󱫟 Active Sessions:"(set_color normal) for line in $active_sessions echo -e " $line" end echo "" else echo -e (set_color 555555)"(No active sessions)"(set_color normal) echo "" end # 2. Provide choices echo -e (set_color 00afaf)"󰒓 Select an option:"(set_color normal) echo -e " [1] Pick from active sessions (Fuzzy search)" echo -e " [2] Create NEW custom session" echo -e " [w] Enter Tmuxinator Workspaces" echo -e " [d] Detach from current session" echo -e " [x] Kill a session" echo -e " [Enter] Quick jump to "(set_color -o)"Main"(set_color normal) echo "" read -l -P "Choice > " choice switch "$choice" case 1 set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session") if test -n "$session" if set -q TMUX tmux switch-client -t "$session" else tmux attach-session -t "$session" end end case 2 read -l -P "Enter name for new session: " new_name if test -n "$new_name" env -u TMUX tmux new-session -d -s "$new_name" 2>/dev/null if set -q TMUX tmux switch-client -t "$new_name" else tmux attach-session -t "$new_name" end end case d D if set -q TMUX; tmux detach-client; else; echo "You aren't in a tmux session!"; end case w W if type -q tmuxinator tmuxinator start Workspace else echo (set_color red)"Error: tmuxinator is not installed."(set_color normal) end case x X set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session to KILL") if test -n "$session" tmux kill-session -t "$session" echo "Killed session: $session" ts end case "" "*" env -u TMUX tmux new-session -d -s Main 2>/dev/null if set -q TMUX; tmux switch-client -t Main; else; tmux attach-session -t Main; end end commandline -f repaint end