もふもふ技術部

SSH接続時に動的にターミナルの背景画像を切り替える方法


最近、本番環境や検証環境にSSH接続してごにょごにょする機会が増えました。ともすると今接続しているサーバがどこなのかよく確認せずにコマンド叩いたりしちゃってたまにヒヤっとするときがあります。

今のところ大事に至ったケースはないので大丈夫なんですが、あらかじめ手をうっておくにこしたことはないですね。

標準のターミナル(Terminal.app)でチャレンジしたことがあったのですが、ターミナルのプロファイルを作成して切り分ける方法だったため、毎回ターミナルが別ウィンドウで表示されてしまったり、SSH接続を切断しても元に戻らなかったりでイマイチな感じでした。

そこでiTermを使えばAppleScriptで拡張出来るっぽい情報を得たのでちょっとやってみます。

解説

iTermをダウンロードしてインストールします。
http://www.iterm2.com/#/section/home

起動してみたらどうやらデフォルトで黒画面なんですね。
ssh_chbg_01

SSH接続時にこんな感じに変わるようにします(文字見づらい!)。
ssh_chbg_02

下記はSSH接続時に動的に背景色を切り替えるためのスクリプトですが、これを参考に背景画像を切り替えられるようにしました。
https://gist.github.com/thomd/956095

この辺も参考になった。
http://kpumuk.info/mac-os-x/how-to-show-ssh-host-name-on-the-iterms-background/

ssh_chbg.sh

case文の中で各ホスト別の背景画像を指定します。このソースコードでは、ssh sakuraというコマンドで接続した場合に~/bin/ssh_bg_image/sakura.jpgが背景画像に適用されるようになっています。

最後の行で、SSHを切断した際に戻る背景画像を指定しています。本当は画像なし状態に戻したかったんですがやり方がわかりませんでした。なので1pxの#000000の画像を指定して黒画面に戻しています。

使い方

下記からコピペするかgit cloneして、~/bin配下にでも入れましょう。
https://gist.github.com/harada4atsushi/10001208

あと必要な画像も任意のディレクトリに置いておいてください。この例では~/bin/ssh_bg_image配下に置いています。

実行権限の付与

~/.bashrcにaliasを定義

これでssh hostnameというコマンドを叩くと背景画像が切り替わります!これなら間違えないぞ!

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。