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」で、クリップボードにコピーしたパスを削除して完了です。



ATOKの辞書をmacOS標準の日本語入力のユーザ辞書にインポートする方法
「SimpleExtManager」でChrome拡張機能のオン・オフを素早く行う
AlfredでKarabiner-Elementsのプロファイルを切り替えるWorkflowの作り方
Macログイン時に自動起動するアプリの管理方法
PC作業をする上でのちょっとした小技 #1日1Tips – 2019年6月
メールとチャットを一元管理してワークスペースを整理する「Rambox」
Path Finderがメジャーアップデートで今後はサブスクリプションモデルに!
Finderで選択したフォルダをVisual Studio Codeで開くAlfred Workflowの作り方
いつも使っているアプリがタブに埋もれるのを防止するアプリ「Biscuit(ビスケット)」
AlfredのWorkflowをコードを書いて作成する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法
npm install時に「cb() never called!」とエラーが表示されたときの解決法
ATOKの使いやすさに直結する「入力・変換」タブの設定項目
何でもEvernoteに保存したい僕のEvernoteの使い方
iTerm2で画面の見た目や細かい設定などを「プロファイル」単位で保存・管理する環境設定の「Profiles」タブ
BetterTouchToolでトラックパッドやタッチバーにアクションを割り当てる
BetterSnapToolでリサイズ前のウインドウサイズを復元する方法・復元しない方法
Keyboard Maestroでウインドウのリサイズや移動をするときに使う「SCREENVISIBLE」についてのまとめ
webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法
データベースの操作がGUIで分かりやすく操作できるSequel Proの最低限の使い方