all repos

tmux-stare @ f53eab9

session manager, but my session manager
3 files changed, 14 insertions(+), 13 deletions(-)
ai is bad at putting code in correct files
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-02-09 18:04:17 +0200
Authored at: 2026-02-09 16:59:43 +0200
Change ID: zpwxmntuusnvnqlvummksrrkzxrmlpnm
Parent: 2435b5e
M scripts/helpers.sh
···
        33
        33
         }

      
        34
        34
         

      
        35
        35
         # === spiner

      
        36
        
        -# TODO: use one of those  briael fonts

      
        
        36
        +# TODO: use one of those briael fonts

      
        37
        37
         new_spinner() {

      
        38
        38
           local current=0

      
        39
        39
           local -r chars="/-\|"

      ···
        53
        53
           kill "$SPINNER_PID"

      
        54
        54
           tmux display-message "$1"

      
        55
        55
         }

      
        56
        
        -

      
        57
        
        -get_current_session_name() {

      
        58
        
        -  if [ "$(tmux display-message -p "#{session_grouped}")" = 0 ]; then

      
        59
        
        -    tmux display-message -p "#{session_name}" 2>/dev/null || true

      
        60
        
        -  else

      
        61
        
        -    tmux display-message -p "#{session_group}" 2>/dev/null || true

      
        62
        
        -  fi

      
        63
        
        -}

      
M scripts/pick.sh
···
        4
        4
         source "$CURRENT_DIR/sessions.sh"

      
        5
        5
         

      
        6
        6
         get_all_sessions() {

      
        7
        
        -  local current_session="$1"

      
        
        7
        +  local current_session="$(get_current_session_name)"

      
        8
        8
           local save_dir="$(get_opt_dir)"

      
        9
        9
           local -A seen

      
        10
        10
         

      ···
        40
        40
         }

      
        41
        41
         

      
        42
        42
         pick() {

      
        43
        
        -  local selected=$(get_all_sessions "$(get_current_session_name)" | fzf \

      
        
        43
        +  local selected=$(get_all_sessions | fzf \

      
        44
        44
             --footer="C-x: unload/kill | C-r: rename | C-o: new" \

      
        45
        45
             --bind "ctrl-x:execute($0 unload {})+reload($0 list)" \

      
        46
        46
             --bind "ctrl-r:execute($0 rename {})+reload($0 list)" \

      ···
        73
        73
           local session_file="$save_dir/${session_name}_last"

      
        74
        74
         

      
        75
        75
           local result

      
        76
        
        -  result=$(printf "Delete\nCancel" | fzf --header="Delete saved session '$session_name'?")

      
        
        76
        +  result=$(printf "Cancel\nDelete" | fzf --header="Delete saved session '$session_name'?")

      
        77
        77
           if [[ "$result" == "Delete" ]]; then

      
        78
        78
             rm -f "$session_file"

      
        79
        79
           fi

      ···
        105
        105
           unload) unload_or_kill "$2" ;;

      
        106
        106
           rename) rename "$2" ;;

      
        107
        107
           new) new_session ;;

      
        108
        
        -  list) get_all_sessions "$(get_current_session_name)" ;;

      
        
        108
        +  list) get_all_sessions ;;

      
        109
        109
           esac

      
        110
        110
         }

      
        111
        111
         main "$@"

      
M scripts/sessions.sh
···
        4
        4
         

      
        5
        5
         declare S=$'\t'

      
        6
        6
         

      
        
        7
        +# === common

      
        
        8
        +get_current_session_name() {

      
        
        9
        +  if [ "$(tmux display-message -p "#{session_grouped}")" = 0 ]; then

      
        
        10
        +    tmux display-message -p "#{session_name}" 2>/dev/null || true

      
        
        11
        +  else

      
        
        12
        +    tmux display-message -p "#{session_group}" 2>/dev/null || true

      
        
        13
        +  fi

      
        
        14
        +}

      
        
        15
        +

      
        7
        16
         rename_session() {

      
        8
        17
           local old="$1"

      
        9
        18
           local new="$2"