ウィンドウ作成時のtmuxセッションの選択

ウィンドウ作成時のtmuxセッションの選択

tmuxは現在のセッションの下に新しいウィンドウを作成します(キーバインディングcを使用)。ウィンドウを作成するときにセッションを選択したいと思います。

スクリプトは直接実行すると正常に動作しますが、バインドキーを使用してtmuxから呼び出すと失敗します bind-key C run-shell '~/tmux/tmux.window.sh'。出力は次のとおりです'tmux/tmux.window.sh' returned 1

#!/bin/sh

export PATH=$PATH:/usr/local/bin

# present menu for user to choose which workspace to open
PS3="option: "
options=($(tmux list-sessions -F "#S") "in new session" )
select opt in "${options[@]}"
do
    case $opt in
        "in new session")
            read -p "new session: " SESSION_NAME
            TMUX=  tmux new -s "$SESSION_NAME"
            break
            ;;
        *)
            tmux new-window -t ${opt}:
            tmux attach-session -t ${opt}
            break
            ;;
    esac
done

答え1

標準入力がないため、readfromは使用できません。run-shellウィンドウからスクリプトを実行できます(使用split-window)。または、tmux 3.1を使用している場合はメニューを作成し、display-menu3.2-rcまたはmasterを使用している場合はポップアップを使用できますdisplay-popup

セッション、ウィンドウ、ペインをすべて一度に変更したい場合は、このswitch-clientコマンドを使用できます。

関連情報