AppleScriptで「現在ディレクトリでターミナル開く」ボタンとか「現在ディレクトリをSublimeで開く」ボタンとか「現在ディレクトリでメモを保存」などをFinderのタブに作る


※今更ですけどspotlightで検索→実行でも動きます。
あとalfredのメガサポーターならこちらの方がオススメです。自分は完全これに移行しました。


(iterm2版はコメントにて thanks @derorian3 様)

👇実装例(gif)

解説

これどうやって作ってんの?」「自分も色々作ってみたい」という方の為に。

ソースコード

これはAppleScriptで作っています。ソースコード(10/9追記 @MD5500 さん情報)は下記の通り。

openterminal.app
tell application "Finder"
    set this_folder to target of front window as alias
end tell

tell application "Terminal"
    activate
    do script "cd " & quoted form of POSIX path of this_folder
end tell

iTermはこちら👇作: @derorian3

openiterm2.app
tell application "Finder"
    -- set _dir to POSIX path of ((folder of (front window)) as alias)
    if exists Finder window 1 then
        set currentDir to target of Finder window 1 as Unicode text
        set posixPath to get POSIX path of currentDir
    end if
end tell

tell application "iTerm"
    activate
    set _current_session to current session of current window
    tell current window
        create tab with default profile

        tell current session of current tab
            write text "cd " & posixPath
        end tell
    end tell
end tell

なんとなく直感的に何やってるのかわかりますでしょうか。
このようにMacアプリ間で変数を受け取って渡す事が可能なのです。

ちなみに標準アプリである必要はなく、Sublimeなどの外部アプリとも連携できます。例えばこちらはSublimeと連携し、「現在ディレクトリをSublimeで開く」アプリになります。

openSublime.scpt
on openInSublime(theFiles)
    tell application "Sublime Text"
        open theFiles
        activate
    end tell
end openInSublime

on run
    tell application "Finder"
        if selection is {} then
            set theSelection to folder of the front window as string
        else
            set theSelection to selection as alias list
        end if
    end tell
    openInSublime(theSelection)
end run

on open (theFiles)
    openInSublime(theFiles)
end open

現在ディレクトリでメモを開きたい場合はこちら。

openMemo.scpt
on run {input, parameters}
    tell application "Finder" to make new file at (the target of the front window) as alias
    return input
end run

アプリ化

AppleScriptをダブルクリックで起動できるアプリ化するには、Automatorを使います。

(1)Automatorとか開いたことなんてほとんどの方がないと思いますが、
Macには標準で用意されてるのでアプリケーション開いてみましょう👇

(2)Automatorを開いたら、下画像のように「アプリケーション」を選択しましょう。

(3)編集画面に遷移したら、下画像のように「AppleScriptを実行」という項目を右半分のゾーンにドラッグアンドドロップしてください。

(4)コード入力画面に、上述のAppleScriptのコードをコピペしましょう

(5)ここまで出来たらセーブしてください。名前は何でもいいので「***.app」というAppファイルができるかと思います。

このAppファイルをどこにおいても、ダブルクリックすれば、ターミナルがどこからでも起動できる事が確認できます。

これをツールバーに突っ込めば、どこからでも起動できるAppファイルができるというわけです。

まとめ

今回のAppleScriptは一番単純なものですが、Automatorの編集画面を極めれば色々カスタマイズできる事がわかると思います。
いろいろ定常化できそうなタスクや、自動化したいコマンド操作などがある人はぜひ色々と試してみて下さい

参考
APPLESCRIPT 最速基本文法マスター
AppleScript で iTerm2 Version 3 を操作する
あとこのスクリプトを参考にしたサイトがあったはずだけど忘れてしまった・・・見つけ次第追記します。