読者です 読者をやめる 読者になる 読者になる

The 42 Of Spaghetti

メモを交えて所有物を淡々と記録するログ

フォルダアクションに「totalterminalで開く」を追加する

その他 雑記 IT

totalterminal連携第二弾。OS X専用記事です。
Finderでフォルダを開くときに、terminalで開けるようにする場合、システム設定>キーボード>ショートカットで、「サービス」から「ターミナルで開く」みたいなものにチェックを入れれば、コンテキストメニューに追加されます。
f:id:takafuu:20140621195654j:plain:w300

しかし、これだとやっぱりtotalterminalに開けないので、開けるようにするため、アクションを作って追加する手順です。

1. 必要なファイルをDLして、インストール

後で使うので、「Miko さんちのホームページ」より、ファイルパスを取得するApple scriptをダウンロードしておきます。これを解凍し、ダブルクリックしてautomatorにインストールします。

これを自前で作るのは結構面倒そうなので、公開thxです。

2. automatorで必要なアクションを作成する

以下に手順を箇条書き。

  1. automatorを立ち上げ、新規に「サービス」選択
  2. 選択項目(ウィンドウの右上)を「folder」、開くアプリを「Finder.app」にする
  3. 先ほどインストールしたライブラリを検索して、右にドラッグ。日本語名は「ファイルパスを取得」だと思います。
  4. ライブラリより「AppleScriptを実行」を選んで、3,の下にドラッグ。
  5. 以下のコードをコピペする。

on run {input, parameters}
tell application "Terminal"
activate
do script "cd " & input in front window
end tell
return input
end run

すると以下の様な画面になっていると思うので、これをセーブします。
このときに付けた名前がコンテキストメニューに反映されます。

f:id:takafuu:20140621195718j:plain:w300

実行結果

フォルダを開こうとすると、こんな感じに動いてくれます。
f:id:takafuu:20140621195755j:plain:w300
f:id:takafuu:20140621195803j:plain:w300

やっていること

とてもおおざっぱに言うと、automatorは「一連の動作を自動化したもの」を作ることができるので、これを利用して「folderをコンテキストメニューで開いたときの動き」を作っています。

動作を分解すると、

  1. フォルダをfinderで開く
  2. . ファイルパスを取得
  3. 作成したappleScriptに渡す

applescriptは、ターミナルにもらったファイルパスを渡して、"cd (ファイルパス)"を実行しています。cd〜はbashでいうとディレクトリ移動(Change Directory)なので、結果的に今開いているフォルダをterminalで開ける、という仕組みです。Applescriptは全然わからないので、コードの雰囲気で解説してます。

先ほど作ったファイルはどこにあるの?

~/Library/Services/にあります。~は自分のユーザ名です。

~/Library、Finderでは表示されなくなっている*1ので、開くにはちょっとした操作が必要になります。通常使用だと、恒常的にここを開くようにするメリットがあまりないので、開きたいときはterminalを開き、

cd ~/Library

と打って移動した後、

open ./

と打つとFinderで開きます。

*1:いつからだっけ?

広告を非表示にする