2016-05-13T11:54:52+09:00

TerminalControl.osaxSmartTitleGraveyard に移しました

二つのソフトがお蔵入りしました。

TerminalControlosax は、ターミナル.app のプロセスにスクリプティング機能追加を割り込ませることによって、ターミナル.app の 足りない AppleScript に関する機能を補うスクリプティング機能追加です。

OS X 10.11 で System Integrity Protection が導入されたことにより、スクリプティング機能追加をターミナル.app のプロセス内で実行できなくなってしまいました。危険な香りがしますが、既存アプリケーションの機能強化の強力な手段だったので、できなくなって誠に残念です。

もっぱら、Open in Terminal でターミナルのワーキングディレクトリを取得することが目的でしたが、幸いなことに別の仕組みを開発することができたのでお蔵入りです。

SmartTitle は、ターミナルのウィンドウのタイトルに、シェルの working directory のパスを自動的に表示するコマンドラインツールです。もともとはターミナル.app のウィンドウタイトルにマルチバイト(日本語の文字など)を含んだパスを設定するために作りました。

普通はエスケープシーケンスをつかって、ウインドウタイトルを変更するかと思いますが、OS X 10.6 以前では、エスケープシーケンスではマルチバイト文字をタイトルに設定できなかったんですね。そこで、エスケープシーケンスを使わずコマンドラインからターミナルウインドウタイトルを AppleScript/AppleEvent で変更するのがこの作品の肝です。

初期は、Shell と AppleScript で実装しており動作速度が遅く、コマンドを実行すると次のコマンドプロンプトの表示が遅くてストレスを感じていました。すべて Objective-C で実装し直すと十分にストレスの感じない環境になったと思います。

OS X 10.7 から、エスケープシーケンスでマルチバイト文字をタイトルに設定できるようになったので、お蔵入りです。