Path Finderの「Finderで開く」が機能しないので、Keyboard Maestroで代替用マクロを作成する

Path Finderには、選択したファイルやフォルダを「Finderで開く」機能が存在します。
しかし、この機能が定期的に動作しなくなります。
一応Path Finderをインストールし直して、下記のターミナルコマンドを実行すると一時的に治りますが、効果がない場合もあったり、治ってもいつの間にかまた機能しなくなったり…
$ xattr /Applications/"Path Finder.app"というわけで、Keyboard Maestroで「Path Finderで選択中のファイルをFinderで開いてくれるマクロ」を作成しました。
Keyboard MaestroやPath Finderについてそもそも知らない方は、どちらも過去に記事にしているのでそちらをご覧ください。
マクロの全体像
やっていることは下記の通りです。
- Path Finderで選択中ファイルのパスをコピーする
- Finderに切り替えてパスをペーストして移動
- 選択していたのがフォルダだった場合は1つ上の階層に戻る

今回のマクロはこちらからダウンロード可能です。
ぜひ使ってみたり、自由にカスタマイズしてみてください。
ここからはマクロの流れがどのようになっているかの解説です。
1. Path Finderで選択中ファイルのパスをコピーする
まずはPath Finderで選択中ファイルのパスをコピーします。
メニューの[編集]→[パスをコピー]→[UNIX]でパスのコピーができるので、「Select or Show a Menu Item」アクションでメニューを選択します。
![[編集]→[パスをコピー]→[UNIX]](https://webrandum.net/mskz/wp-content/uploads/2021/03/image_3-4-e1616078718539.png)
ちなみに、Path Finderでは色んな形式でパスのコピーができます。
[UNIX]以外の選択肢だと、どのような形式でコピーできるのか知りたい場合は、過去にまとめているのでそちらの記事をご覧ください。
これで、クリップボードに選択中ファイルのパスがコピーできました。
2. Finderに切り替えてパスをペーストして移動
次に「Activate a Specific Application」アクションを使って、Finderをアクティブにします。
その後すぐに次の動作が始まってしまうと、動作が追いつかなくなってしまう可能性があるので、「Pause Until」アクションで、Finderがアクティブになるまで待ってあげます。
Finderがアクティブになったら、今度はFinderの[移動]→[フォルダへ移動…]メニューを選択させます。
![[移動]→[フォルダへ移動...]](https://webrandum.net/mskz/wp-content/uploads/2021/03/image_4-4.png)
するとパスを入力してフォルダ移動ができる画面が出てくるので、ここに先ほどコピーしたパスをペーストし、enter(return)で確定します。
これでフォルダ移動ができました。
パスをコピーで[ターミナル]ではなく[UNIX]を使う理由
余談ですが、[パスをコピー]にある選択肢の中で[UNIX]と非常によく似た形式でコピーできるのが[ターミナル]です。
[ターミナル]を選択した場合は、ほとんど[UNIX]と変わりませんが、フォルダやファイル名に半角スペースが付いていた場合に、その前に「\(バックスラッシュ)」が入るようになります。
// ↓[UNIX]の場合
/Users/saitomasakazu/Dropbox/サンプル フォルダ
// ↓[ターミナル]の場合
/Users/saitomasakazu/Dropbox/サンプル\ フォルダこれは、ターミナルでパスを入力するときに半角スペースが入っているとそこでパスの認識が途切れてしまうため、エスケープ目的で入ります。
しかし、逆にFinderの[フォルダへ移動…]で入力するパスでは、Finder上のフォルダ名と完全一致している必要があります。
バックスラッシュが入っていると、完全一致と認識されないため、ここでは[ターミナル]ではなく[UNIX]を使っています。
3. 選択していたのがフォルダだった場合は1つ上の階層に戻る
最後は好みによってしてもしなくてもどちらでもいいのですが、フォルダを選択していた場合の挙動に関してです。
Finderの[フォルダへ移動…]で入力するパスの最後がフォルダだった場合、そのフォルダが開いた状態で表示されます。
このままでは、Path Finderを選択した状態で実行すると、Finderではそのフォルダが開いた状態で表示されてしまいます。
そのため、「If Then Else」アクションでクリップボードの中身に「.(ピリオド)」が入っていなかったらフォルダを選択すると判定し、その場合は1つ上の階層に戻るようにしています。
最後に「Delete Past Clipboard」で、クリップボードにコピーしたパスを削除して完了です。




MacのMicrosoft Outlookでメールの署名設定をする方法
テーブルタグ一式をすばやく・ラクに入力するためのスニペットサンプル
Magic Mouseの軌跡の速さを限界を超えて速くする方法
Macのウインドウサイズを瞬時に変更できる「BetterSnapTool」を自分好みにカスタマイズする方法
AlfredのTerminal機能を使って、すばやくターミナルコマンドを実行する
Google Chromeの新規タブページのウェブページへの「ショートカット」を非表示にする方法
Path Finder 8の一括名称変更で使える設定サンプルまとめ
データベースの操作がGUIで分かりやすく操作できるSequel Proの最低限の使い方
Macの画面を手軽に録画できるアプリ「Kap」
Fantastical 2で予定の登録時に使えるキーワードまとめ
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎