Skip to content

feat: prefix S のセッションの一覧とメニューをコマンド tmux-menu からも開けるようにする #270

Description

@takemi-ohama

何をしたいか

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

  • 要求と受け入れ条件 — 2026-09-24 20:11
  • 作業場所の用意 — 2026-09-24 20:12
  • 設計 — 2026-09-24 20:12
  • 素材の収集と出典の確定
  • ドキュメント再構成 — 2026-09-24 20:15
  • ドキュメントレビュー — 2026-09-24 20:16
  • 計画 — 2026-09-26 00:43
  • 実装 — 2026-09-26 00:43
  • 構造改善 — 2026-09-26 00:58
  • 実装レビュー — 2026-09-26 00:58
  • 完了判定 — 2026-09-26 01:19
  • Pull Request — 2026-09-26 01:25
  • 確定仕様化 — 2026-09-26 01:26
  • 後片付け — 2026-09-26 01:50
  • 配布 — 2026-09-26 01:51
  • 体裁レビュー
  • リリース後テスト — 2026-09-26 01:52
  • 振り返り — 2026-09-26 01:57

振り返り: #270 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions