simple-web-system technology

Webに関する技術をシンプルに扱うブログ

tmuxにfish shellのフルパスを書きたくなかった

tmuxは何も設定しない場合、デフォルトシェルが起動します。 大体はbashでしょう。

ただ、自分はfishを愛用していて、fishの場合はPOSIX互換性がないため、デフォルトシェルにする運用はあまり好まれなかったりします。

そのためtmuxからfishを呼び出して使ったりしているんですが、.tmux.confに以下のようにフルパスで書かないといけません。

set-option -g default-shell /usr/bin/fish

PCが一台の場合はこれでいいのですが、複数台で共有するときは、fishのフルパスが違うこともあったりして大変です。

ずっとこの問題で悩んでたんですが、.tmux.confでも環境変数を読み込めることを知ってなんとか解決できました。 tmux用に環境変数を定義すればいいじゃんと!!

自分は.bashrcはdotfilesに入れないようにしているので、各環境ごとに以下のように書くだけで済みました

export TMUX_SHELL=`which fish`

.tmux.confは以下のようにすればOKです

set-option -g default-shell "${TMUX_SHELL}"