SmartTitle
ターミナルのウィンドウのタイトルに、シェルの working directory のパスを自動的に表示するコマンドラインツールです。
ターミナルウィンドウのタイトルに working directory を表示する方法としてエスケープシーケンスを用いた方法が広く知られていますが、残念ながら Mac OS X 標準のターミナルでは、パスに日本語が含まれているとこの方法は正しく動作しません。SmartTitle はパスに日本語が含まれていても正しく機能します。
デフォルトでは、タイトルが長くなりすぎて見苦しくならないように3階層分のパスを表示します。しかし、様々なカスタマイズが行えます。
- 表示するパスの深さを設定できます。フルパスを表示するようにすることもできます。
- ホームディレクトリをチルダ "~" で置き換えるように設定できます。
- 任意の文字列(例えばホスト名など)をタイトルに付け加えられます。
Memory (2016-05-13)
もともとはターミナル.app のウィンドウタイトルにマルチバイト(日本語の文字など)を含んだパスを設定するために作りました。
普通はエスケープシーケンスをつかって、ウインドウタイトルを変更するかと思いますが、OS X 10.6 以前では、エスケープシーケンスではマルチバイト文字をタイトルに設定できなかったんですね。そこで、エスケープシーケンスを使わずコマンドラインからターミナルウインドウタイトルを AppleScript/AppleEvent で変更するのがこの作品の肝です。
初期は、Shell と AppleScript で実装しており動作速度が遅く、コマンドを実行すると次のコマンドプロンプトの表示が遅くてストレスを感じていました。すべて Objective-C で実装し直すと十分にストレスの感じない環境になったと思います。
OS X 10.7 から、エスケープシーケンスでマルチバイト文字をタイトルに設定できるようになったので、お蔵入りです。
更新履歴
- 2.1.2 -- 2012-03-13
- 64 ビット対応。
- 2.1.1 -- 2009-10-13
- Mac OS X 10.6 をサポート。
- 2.1 -- 2009-03-04
- 最初のカスタムタイトルが空白の場合、エラーが発生する不具合を修正。
- タイトルに表示するパスの長さを設定できるようにした(-d オプション)。
- ホームディレクトリのパスをチルダ「~」で置き換えられるようにした(-s オプション)。
- テンプレートを設定して任意の文字列をタイトルに追加できるようにした(-t オプション)。
- 2.0 -- 2008-12-24
- Leopard に対応。また、シェルスクリプトと AppleScript はやめて、Objective-C でかかれたソフトになりました。
- 1.1.2 -- 2006.10.25
- ターミナルのデバイス名をチェックできていなかった不具合を修正
- 1.1.1 -- 2006.05.02
- タイトルを変更すべきターミナルウィンドウを間違えることがある不具合を修正
- ただし、ターミナルタイトルに強制的にデバイス名を表示させるようにしました。
- 英語マニュアルを追加
- タイトルを変更すべきターミナルウィンドウを間違えることがある不具合を修正
- 1.1 -- 2006.01.08
- MacOS X 10.4 のみに対応
- MacOS X 10.4 から osascript が引数をとってスクリプトを実行できるようになりました。この機能を利用することよって、パス文字列中にバックスラッシュ(\)やダブルクウォート(")が含まれていても大丈夫です。
- TEC.osax の代わりに、AppleEventData.osax を使うようにした。
- これまで、パス中の文字列が Shift-JIS に変換できることを(つまり日本語であること)を仮定していたが、文字コードの変換を行わないので日本語以外の文字列がパスに含まれていても大丈夫になりました。
- MacOS X 10.4 のみに対応
- 1.0 -- 2004.05.24
- 初公開