Mac の Finder から Terminal.app を開きたい。
最初から今開いているディレクトリをカレントディレクトリにして。
もちろん JXA を使って自作拡張スクリプトとして。
日本語で探すとみんなアプリを紹介している。
こういう人達って本当にプログラミングをやっているの???
その程度なら自分で作ろうと考えるのが当然だと思うんですけど。
まあそれはいいとして。
最初は sh でやろうと思ったけど pwd が $HOME になってしまう。
どうやら JXA で Finder から取得する必要があるようだ。
Open a new Terminal window for the current Finder folder – macro – Keyboard Maestro Discourse
やっぱり海外でしか手段が見つからないなぁ。
しかし上記をそのまま拡張ディレクトリに突っ込んでも動かない。
Finder から呼び出すので Finder の有無を調べる必要が無い。
つか何をやっているか解りづらいよ、読みやすく書き替えた。
1 2 3 4 5 6 7 8 9 10 11 | #!/usr/bin/osascript let terminal = Application( "Terminal" ); let finder = Application( "Finder" ).finderWindows(); let uri = finder[0].target().url(); let path = decodeURI(uri).slice(7); terminal.doScript( "cd " + path); terminal.doScript( "clear" ); terminal.activate(); |
このくらい分割すれば何をどうやっているか解ると思う。
しかしこの手段では 1 ページ分スクロールになってしまいイマイチ。
筆者はコッチを勧める。
terminal.js
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/osascript let finder = Application( "Finder" ).finderWindows(); let uri = finder[0].target().url(); let path = decodeURI(uri).slice(7); let app = Application.currentApplication(); app.includeStandardAdditions = true ; app.doShellScript( "open -a Terminal " + path); |
と。
open コマンドの最後にフルパスを付ければカレントディレクトリになる。
コイツを実行パーミッションを付加して拡張ディレクトリに移動
chmod +x terminal.js mv terminal.js ~/Library/Scripts/Applications/Finder
これでスクリプトが利用できる。
Finder がアクティブの状態でメニューバーのスクリプトアイコンを。
うん、コレで JXA を実行するのがちょっとだけ楽になったぞい。
とりあえずこれだけ理解できればいくらでも拡張できると思う。