diff --git a/modules/home/tmux.nix b/modules/home/tmux.nix index 33b1cda..a542cd2 100644 --- a/modules/home/tmux.nix +++ b/modules/home/tmux.nix @@ -79,13 +79,11 @@ let # 1. Build the list of active tmux sessions sessions=$(${pkgs.tmux}/bin/tmux list-sessions -F "#S" 2>/dev/null) - if [[ -z "$sessions" ]]; then - echo "No active tmux sessions found." - exit 0 - fi + # Always add the kill-server option + sessions_list="$sessions\n--- KILL TMUX SERVER ---" # 2. Open fzf (Multi-select: Tab to mark multiple, Enter to confirm) - selected=$(echo "$sessions" | ${pkgs.fzf}/bin/fzf -m --header="Select tmux sessions to KILL (Tab to multi-select)" --reverse) + selected=$(echo -e "$sessions_list" | ${pkgs.fzf}/bin/fzf -m --header="Select tmux sessions to KILL (Tab to multi-select)" --reverse) [[ -z "$selected" ]] && exit 0 @@ -94,6 +92,11 @@ let selected_array=("''${(@f)selected}") for s_name in "''${selected_array[@]}"; do + if [[ "$s_name" == "--- KILL TMUX SERVER ---" ]]; then + ${pkgs.tmux}/bin/tmux kill-server + echo "Killed tmux server" + exit 0 + fi if ${pkgs.tmux}/bin/tmux has-session -t "$s_name" 2>/dev/null; then ${pkgs.tmux}/bin/tmux kill-session -t "$s_name" echo "Killed session: $s_name" @@ -119,6 +122,7 @@ in set -g display-time 1500 set -s set-clipboard on set -g extended-keys on + set -g extended-keys-format csi-u unbind S bind S command-prompt "switch -t %1"