読者です 読者をやめる 読者になる 読者になる

TimeCapsule💊

やったこと,やること,やってみたいこと

zshログイン時にtmuxを自動起動させる

今回はdotfilesのお話です。

ターミナル起動後に毎度tmux aと入力するのが面倒なので自動化しました。

環境

zsh: 5.3.1

tmux: 2.3

コード

参考記事: ターミナルマルチプレクサ tmux をカスタマイズする - Qiita

参考記事のコードをいじり、.zshrcに書きました。

# Tmux
if [ -z "$TMUX" ]; then
    if tmux has-session &>/dev/null && tmux list-sessions | grep -qE '.*]$'; then
        tmux list-sessions | perl -pe 's/(^.*?):/\033[31m$1:\033[m/'
        printf "\x1b[37mTmux: attach? (y/N/num)\x1b[0m "
        read
        if [[ $REPLY =~ ^[Yy]$ || $REPLY == '' ]]; then
            if tmux attach-session; then
                echo "$(tmux -V) attached session"
                return 0
            fi
        elif tmux list-sessions | grep -q "^$REPLY:"; then
            if tmux attach -t "$REPLY"; then
                echo "$(tmux -V) attached session"
                return 0
            fi
        fi
    else
        tmux new-session && echo "$(tmux -V) created new session"
    fi
fi

これでzshログイン時に、デタッチされたセッションがあれば y / enterを入力で最後に居たセッションにアタッチ、数字を入力で指定したセッションにアタッチ。

デタッチされたセッションが無ければセッションを作ることが出来ました。