tmuxのセッション作成時に名前付けを強制するzshrc

魚を飼う時、繁殖をさせやすいのはグッピーやアカヒレなどだそうです。数匹のつがいがいればすぐに数百匹まで増えてしまうんだとか。

さて、tmuxヘビーユーザーなんですがセッションが乱立しがちで、外からsshして既存セッションをattachするときにどれがどれかわからないことが個人的にはよくあります。
セッション内の任意のウィンドウもしくはペインでtmux rename-sessionをすることでセッション全体に名前をつけることができ、attachするときこの名前で参照することができて便利です。
これを、セッション作成時に自動で聞くようにしてみました。

やりたいこと

  • tmuxでセッションを作ったあと最初のウィンドウが開かれる時、そのセッションに名前をつけるのを強制したい
  • 何も入力しないことも許容する。その場合は名前付けしない

やりたくないこと

  • 名前付けしなかった場合、セッション内で新たなウィンドウやペインを開く度にまた聞かれたくない

やってることは単純で、zshが起動した時それがtmuxセッション内でかつセッション名がデフォルト(数字のみ)のままである場合、名前の入力を求めtmux rename-sessionコマンドを呼ぶだけです。
何も入力しない場合はセッション名はデフォルトのまま放置しますが、そのままだとセッション内で新たなshellを開く度にプロンプトが出て鬱陶しいので、それが出ないようtmuxのsession-wideな環境変数を使いマークしています。シェル環境変数にマークした場合引き継がれないのでうまくいきません。

tmux 2.2(Mac)と2.1(Ubuntu)で確認しています。

てきとうに書いたのでもっとCOOLなやり方もあると思いますが、ひとまずこんなかんじで。

コメントを残す

メールアドレスが公開されることはありません。