tmuxの起動時にzshを起動
tmuxの起動時にzshコマンドが入っていればzshが起動するようにしたい。zshの起動時にtmuxを起動させるようにすることもできるけど,標準の環境は維持しておきたい。ログインシェルはbashで,tmuxが起動されていない状態からスタートしたい。使いたい時だけ明示的にtmuxとzshを起動させたい。何かあったときに問題となるので初期状態はあまり大きく変えないほうがいいと思う。
以下のようにif-shellを使ってzshコマンドがあるかどうか条件分岐させてtmuxのデフォルトシェルを変更しようとした。
##
default shell
if-shell
“which zsh” “set-option -g default-command zsh”
Cygwinではうまく反映された。しかし,Ubuntu14.04では反映されない。以下のサイトによると,最初のWindowにはif-shellのコマンドは反映されないらしい。
if-shellのようにコマンドがあるかどうか判別させようとするなら,以下のように判定も含めてシェル側でやらせたほうがいいみたい。
これらを踏まえてtmuxの起動時にzshを起動させるには以下のようにした。
##
default shell
#
if-shell “command -v zsh” “set-option -g
default-command zsh”
set-option
-g default-command “which zsh 2>&1 > /dev/null &&
zsh”