Edited at

iTerm2のtabのタイトルと色を動的にいじる

More than 1 year has passed since last update.



後述の応用例が本編かも


title(mac標準のターミナルでも可能)


shell

#例

$ echo -ne "\033]0;${USER}@${LANG}\007"

${USER}@${LANG}の部分は適宜変更する

参考:

Automatically set title on iTerm tabs | MrBrown blob

http://charles.lescampeurs.org/2008/05/07/automatically-set-title-on-iterm-tabs


color(iTerm2のみ)

RGBでtabの色を指定できる

使い方:

$ tab-color 255 255 255 → 真っ白

$ tab-color 255 0 0 → 真っ赤

$ tab-color 192 82 24 → オレンジ


.zshrc

#関数定義(引数3つ)

tab-color() {
echo -ne "\033]6;1;bg;red;brightness;$1\a"
echo -ne "\033]6;1;bg;green;brightness;$2\a"
echo -ne "\033]6;1;bg;blue;brightness;$3\a"
}

tab-reset() {
echo -ne "\033]6;1;bg;*;default\a"
}


参考:

https://gist.github.com/wadey/1140259




応用例(本編)


title

たとえば、.zshrc


.zshrc

function chpwd() { ls; echo -ne "\033]0;$(pwd | rev | awk -F \/ '{print "/"$1"/"$2}'| rev)\007"}


と書いておけば、cdしたときにlsが実行されるのに加えて

タブのtitleとして

[一個上のディレクトリ名]/[現在のディレクトリ名]

が表示されて、複数のtabで行き来する場合に「どのtabがどのディレクトリで作業してるか」把握しやすい


color

同じく.zshrc


.zshrc

alias top='tab-color 134 200 0; top; tab-reset'


って書いとけば、topを起動している間tabの色が黄緑っぽくなる。

irb,pry,octave等のインタプリタ系や、

htop,mc等の常駐系なら問題無く使えると思う。