「ターミナル」のウィンドウタイトルやタブタイトルを変更する

「ターミナル」のウィンドウタイトルやタブタイトルを変更する

Mac の「ターミナル.app」を使っているとき、複数のウィンドウを開いて作業することがよくあると思います。ウィンドウを複数開くことで作業効率はあがりますが、どのウィンドウが何の作業をしているかぱっと見で判別しづらくなります。

判別しやすくする方法として、ウィンドウの背景色やフォントの大きさを変えたりするなど、いくつか方法がありますが、最も簡単なのは、ターミナルのウィンドウに任意のタイトルをつけることが挙げられます。また、タブもウィンドウと同じように任意のタイトルをつけることができます。ちなみに、ウィンドウのタイトルは日本語でもOKです。

ウィンドウタイトルは下の画像のようなものになります。

terminal_title

タイトルを変更する方法はいくつかあります。

  1. ターミナルの「環境設定」->「設定」->「ウィンドウ」のタイトル項目から変更
  2. ターミナルの「シェル」->「インスペクタを表示」からウィンドウタイトルとタブのタイトルの変更
  3. ターミナルのコマンドからタイトルを変更

ひとつひとつ説明していきます。

 

1. ターミナルの「環境設定」->「設定」->「ウィンドウ」のタイトル項目から変更

最も簡単な方法です。ターミナルの環境設定から「設定」を選択、利用するプロファイルを選択し、ウィンドウタブからウィンドウタイトルを変更します。

 

 

各プロファイルごとに設定でき、デフォルトのタイトルは「ターミナル」となっていますが、実際には表示されません。

また、「tty名」や「動作中のプロセス名」など、タイトルの前後に表示する項目を選択することができます。余談ですが、個人的なおすすめの表示設定としては、「動作中のプロセス」と「コマンドキー」です。理由としては、動作中のプロセスでそのウィンドウで実際にどんなプロセスが動いてるかわかりますし、「コマンドキー」を表示することで目的のウィンドウを、キーボードだけで選択することができます。

この設定方法は、最も簡単にたどり着くことができますが、タイトル変更までにステップ数が多く、複数のウィンドウをそれぞれ設定していくのは骨がおれますので、デフォルトの設定を行うとき以外は実用性は低いと考えられます。

 

2. ターミナルの「シェル」->「インスペクタを表示」からウィンドウタイトルとタブのタイトルの変更

「ターミナル.app」 にも Mac の純正アプリケーションに備わっている検索モードの「インスペクタ」が用意されており、そこから各ウィンドウのタイトルとタブのタイトルを変更できます。

terminal_inspecta

インスペクタでは、ウィンドウサイズや、そのウィンドウで実行中のプロセスなどを確認することができ、さらに「設定」タブからはターミナルのプロファイルも設定することができます。

インスペクタは「⌘」+「i」で起動することができるため、キーボードからすぐに設定変更できるため、GUI環境を使うならば、最も早く、簡単な方法でしょう。

3. ターミナルのコマンドからタイトルを変更

ターミナルのシェルのコマンドからウィンドウタイトルを変更するには、特殊なコマンドを実行する必要があります。しかし、ターミナルを使っていて、シェルから実行できることで、それまでの作業からシームレスにウィンドウタイトルを変更できるので、非常に実用性は高いといえます。

以下のコマンドで設定することができます。

echo -en "33];任意の文字列07"

たとえば、「test」というウィンドウタイトルを設定するとすると、次のようなコマンドになります。

echo -en "33];test07"

日本語も設定することができます。

echo -en "33];"例"07"

 

さて、設定できるのはいいですが、このままでは、変更する度に長い文字を打つ必要があり、実用性に欠けます。よって簡単に実行できるようにシェルスクリプトを作成し、alias に登録しておきましょう。

まず、シェルスクリプトはパスが通っているところに設置する必要があるので、パスが通っている場所を確認します。

#パスが通っているところを確認
echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

自分の環境で実行してみて、表示されたどこかのディレクトリに下記のシェルスクリプトを作成します。

シェルスクリプトの名前はウィンドウのタイトルの変更をしたいコマンド名に設定しておきます。ここでは、「chtwt」に設定します。(Change Terminal Window Title の略)

#!/bin/bash

if [ "$#" -eq 0 ];then
#引数がなかった場合に使い方を表示
  echo "usage chtwt 'titlename' "
else
#第1引数をウィンドウのタイトルに設定
  echo -en "33];$107"
fi

このままでは実行権限がないので、実行権限を付加します。

#スクリプトを設置したディレクトリに移動後、実行権限を付与
chmod ugo+x ./chtwt.sh

これで、下記のように、作成したシェルスクリプト名のコマンドに設定したいウィンドウのタイトルを引数として渡すことで、簡単にウィンドウのタイトルを変更することができるようになりました。

#ウィンドウの名前をtestに変更
chtwt test
#ウィンドウの名前を例に変更
chtwt 例

英語、日本語関係なく設定できます。