何をしたいか
prefix S(Ctrl-b S)で開くセッションの一覧と操作のメニューを、コマンド tmux-menu からも開けるようにしたい。
#234(PR #264)で入れた prefix S は、tmux のキー割り当てでしか呼べない。キーを覚えていない人や、tmux の外にいるときは使えない。#234 の設計でも「tmux の外からは呼べない」を弱点として挙げていた。
提案
tmux-go / tmux-peek / tmux-kill と同じ形で、tmux-session を指す symlink tmux-menu を足す。実行する中身は prefix S の割り当てと同じ choose-tree である。
| どこで呼ぶか |
動き |
| tmux の中 |
今の pane にセッションの一覧を出す。選んで Enter を押すと、移る(a)・中身を見る(p)・落とす(k)のメニューが出る |
| tmux の外 |
直近のセッションへ attach し、そのまま一覧を出す(tmux attach \; choose-tree …) |
中身のスケッチ(未実行):
set -- choose-tree -Zs -O name \
"run-shell -t \"%%%\" \"tmux-session menu -c #{q:client_name} #{q:session_id}\""
if [ -n "${TMUX:-}" ]; then
tmux "$@"
else
tmux attach \; "$@"
fi
tmux の外からも呼べるので、#234 の「tmux の外からは呼べない」という弱点が消える。
確かめること
- シェルから開いた
choose-tree で、template の #{q:client_name} が Enter を押した端末の名前へ展開されるか。キー割り当てから開いた場合と同じに振る舞う見込みだが、実際の端末で操作しないと確かめられない
- tmux の外で、サーバもセッションも無いときの扱い。例: 知らせを出して終了コード 1 で終える
- tmux の外で、どのセッションへ attach するか。既定の
attach は直近のセッションを選ぶ。名前を引数で取るかどうか
prefix S の割り当て(containers/base/tmux.conf)と tmux-menu の中身を 1 か所へまとめるか。例: 割り当てのほうを run-shell 'tmux-menu' 相当にして、同じ行を 2 か所に持たないようにする
決めること
- サブコマンドの名前(
tmux-session menu を引数なしで呼ぶ形にするか、tmux-session ui のような新しいサブコマンドにするか)。今の menu は -c 端末 <セッション> が必須の内部用なので、意味を分けるなら別名がよい
- 利用者向けの文書(
docs/user/)と確定仕様(docs/specifications/tmux-named-session.md)への追記
修正レイヤー
containers/base/tmux-session(サブコマンドの追加)
containers/base/Dockerfile(symlink tmux-menu の追加)
- 場合により
containers/base/tmux.conf
由来
#234 のリリース後に、利用者から「Ctrl-b S をコマンドにできないか」「tmux-menu というコマンドにする」と要望があった(2026-09-24)。
進行
モード: standard / 作業ツリー: /Users/takemi_ohama/devbase/.worktrees/feature/plan71-tmux-menu / 計画: /Users/takemi_ohama/devbase/.worktrees/feature/plan71-tmux-menu/issues/PLAN71_tmux-menu-design.md
振り返り: #270 (comment)
何をしたいか
prefix S(Ctrl-b S)で開くセッションの一覧と操作のメニューを、コマンドtmux-menuからも開けるようにしたい。#234(PR #264)で入れた
prefix Sは、tmux のキー割り当てでしか呼べない。キーを覚えていない人や、tmux の外にいるときは使えない。#234 の設計でも「tmux の外からは呼べない」を弱点として挙げていた。提案
tmux-go/tmux-peek/tmux-killと同じ形で、tmux-sessionを指す symlinktmux-menuを足す。実行する中身はprefix Sの割り当てと同じchoose-treeである。a)・中身を見る(p)・落とす(k)のメニューが出るtmux attach \; choose-tree …)中身のスケッチ(未実行):
tmux の外からも呼べるので、#234 の「tmux の外からは呼べない」という弱点が消える。
確かめること
choose-treeで、template の#{q:client_name}が Enter を押した端末の名前へ展開されるか。キー割り当てから開いた場合と同じに振る舞う見込みだが、実際の端末で操作しないと確かめられないattachは直近のセッションを選ぶ。名前を引数で取るかどうかprefix Sの割り当て(containers/base/tmux.conf)とtmux-menuの中身を 1 か所へまとめるか。例: 割り当てのほうをrun-shell 'tmux-menu'相当にして、同じ行を 2 か所に持たないようにする決めること
tmux-session menuを引数なしで呼ぶ形にするか、tmux-session uiのような新しいサブコマンドにするか)。今のmenuは-c 端末 <セッション>が必須の内部用なので、意味を分けるなら別名がよいdocs/user/)と確定仕様(docs/specifications/tmux-named-session.md)への追記修正レイヤー
containers/base/tmux-session(サブコマンドの追加)containers/base/Dockerfile(symlinktmux-menuの追加)containers/base/tmux.conf由来
#234 のリリース後に、利用者から「
Ctrl-b Sをコマンドにできないか」「tmux-menuというコマンドにする」と要望があった(2026-09-24)。進行
モード: standard / 作業ツリー:
/Users/takemi_ohama/devbase/.worktrees/feature/plan71-tmux-menu/ 計画:/Users/takemi_ohama/devbase/.worktrees/feature/plan71-tmux-menu/issues/PLAN71_tmux-menu-design.md振り返り: #270 (comment)