現在職場では、Debian 9 + LXDE な環境で開発をしているのですが、SSH 接続の際に本番環境とステージング環境とがひと目で分かるように背景色を変えたいなと思っていました。
ググって見ると、Mac の iTerm2 での背景色の変え方は引っかかるのですが、Linux のターミナルでの変更方法が見つかりませんでした。
ちょうど tmux を使っているので、tmux の機能で実現することができないかなと調べてみると実現できるとことがわかりました。
下記を.bashrc や .zshrc に仕込むことで下記に記載したホストに接続すると背景色を変えることができます。
function ssh() {
# tmux起動時
if [[ -n $(printenv TMUX) ]] ; then
# 現在のペインIDを記録
local pane_id=$(tmux display -p '#{pane_id}')
# 接続先ホスト名に応じて背景色を切り替え
if [[ `echo $1 | grep 'prd'` ]] ; then
tmux select-pane -P 'bg=colour52,fg=white'
elif [[ `echo $1 | grep 'stg'` ]] ; then
tmux select-pane -P 'bg=colour25,fg=white'
fi
# 通常通りssh続行
command ssh $@
# デフォルトの背景色に戻す
tmux select-pane -t $pane_id -P 'default'
else
command ssh $@
fi
}