Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【tmux】tmuxがすでに起動しているときはそれにデタッチする、起動してないときはnew windowする設定

(元記事 2020/12/21)

tmuxがすでに起動しているときはそれにデタッチする、起動してないときはnew windowする設定
を知りたい。
screenにはそういうことを自動的にやってくれるらしい

が、tmuxにはないので関数を作らないといけない



↓9年前の記事
tmuxが起動してると/tmp/tmux-*/defaultにファイルがあることを活用してる
この通り書いてみたけど、セッションの有無に関わらず、このファイルがあるので上手く行かなかった

q.hatena.ne.jp



↓やってることはシンプルで、tmux lsですでにセッションがあるか確認
あるなら、接続
ないなら、新規作成してる

qiita.com

            • -

これに加えて、
新規で画面を開くときは、~/.tmux.conf以外の設定ファイルを読み込んで起動したかった
(共有アカウントで共有の計算機に入ったときにtmuxを使いたかったので)

やり方は以下の通り
source-fileのあとに書けばOK

function run_tmux(){
tmux ls > /dev/null
if [ $? -eq 1 -a -z "$TMUX" ]; then
tmux -2 new-session \; source-file /somewhere/.tmux.conf
elif [ -z "$TMUX" ] ; then
tmux -2 a;
else
echo "sessions should be nested with care."
fi
}