最近、 ローカルにおいてあるtmux.confをリモートサーバで利用する ことが多いのだけど、その時にリモートサーバのtmuxのバージョンが古いとうまく動かないことがある。 そのため、特定の設定についてtmux.conf側でバージョンに応じて読み込みをさせる必要がでてきた。

調べて知ったのだが、実はtmuxではShellのコマンドを叩くことができるようで、以下の様に一度tmuxのバージョンを変数に代入したりして、それを参照させて分岐させることができるようだ。

shell
# 環境変数TMUX_VERSIONにバージョンを代入 run-shell "tmux setenv -g TMUX_VERSION $(tmux -V | cut -c 6-)" # TMUXのバージョンに応じて処理を切り替える if-shell -b '[ "$(echo "$TMUX_VERSION < 2.1" | bc)" = 1 ]' \ "set -g mouse-select-pane on; set -g mode-mouse on; \\ set -g mouse-resize-pane on; set -g mouse-select-window on" if-shell -b '[ "$(echo "$TMUX_VERSION >= 2.1" | bc)" = 1 ]' \ "set -g mouse on"

知らなかった。 これを利用すれば、バージョンごとに読み込ませる設定を指定できそうだ。