f

2014-09-11

tmuxの起動時にzshを起動

tmuxの起動時にzshコマンドが入っていればzshが起動するようにしたい。zshの起動時にtmuxを起動させるようにすることもできるけど,標準の環境は維持しておきたい。ログインシェルはbashで,tmuxが起動されていない状態からスタートしたい。使いたい時だけ明示的にtmuxzshを起動させたい。何かあったときに問題となるので初期状態はあまり大きく変えないほうがいいと思う。
以下のようにif-shellを使ってzshコマンドがあるかどうか条件分岐させてtmuxのデフォルトシェルを変更しようとした。
## default shell
if-shell "which zsh" "set-option -g default-command zsh"
Cygwinではうまく反映された。しかし,Ubuntu14.04では反映されない。以下のサイトによると,最初のWindowにはif-shellのコマンドは反映されないらしい。
参考:tmuxを使い始めてみた - すぎゃーんメモ http://d.hatena.ne.jp/sugyan/20120229/1330483945

if-shellのようにコマンドがあるかどうか判別させようとするなら,以下のように判定も含めてシェル側でやらせたほうがいいみたい。
参考:tmuxpbcopy/pbpaste対応にする - 四角革命前夜 http://d.hatena.ne.jp/sasaplus1/20120811/1344619924#20120811f1
これらを踏まえて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" 

0 件のコメント:

コメントを投稿