PopClip経由で実行するKeyboard Maestroマクロ
Keyboard Maestroマクロはhot key(キーボードショートカット)で実行するのが早い反面、次のようなデメリットがあります。
- 覚えきれない
- ほかとのバッティング
次善策をとして「パレット」の利用がありますが、パレットも最善とは言えません。
- パレットそのものがジャマ
- マクロが増えるとパレットが大きくなる
今春(2022年)、テキストまわりの整形マクロを整備していたのですが、上記の理由で少し不便さを感じていました。「右クリックでできるといいよね…」という提案をいただいていたのですが、macOSの「サービス」として実装するのに難儀しつつ、なんとなく生粋のMacユーザーとしては、できれば「右クリックはしたくない」という心情…
前置きが長くなりましたが、PopClipというユーティリティを使ってKeyboard Maestroマクロを呼び出す方法をまとめてみました。
この記事内の目次
PopClipとは
PopClip(ポップクリップ)は老舗のmacOS向けのユーティリティ。文字列を選択するとiOSのようなバーが表示されます。
1,840円の有償アプリでMac App Storeから購入します。サブスクでなく買い切りです。
たくさんの拡張機能が用意されています。
最近、DeepLにも対応しました。
PopClip拡張機能の全体像
全体像としては次のようになっています。
重要な部分を拡大
PopClip拡張機能の作成の下準備
2つのファイル、アイコン用に画像ファイル(透過PNG)を用意します。
「Config.plist」の作成
次のソースコードをテキストファイルにコピー&ペーストし、「Config.plist」というファイル名で保存します。
- <string>KMBridge.applescript</string>:AppleScriptのファイル名
- <string>calendar.png</string>:PopClipバーに表示されるアイコンのファイル名
- <string>日付</string>:PopClipバーのアイコンにマウスオーバーしたときのツールヒント
- <string>日付挿入</string>:PopClipの環境設定のアクションリストで表示される名称
- <string> com.KMBridge </string>:識別子:ほかとダブらないように
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Actions</key>
<array>
<dict>
<key>AppleScript File</key>
<string>KMBridge.applescript</string>
<key>Image File</key>
<string>calendar.png</string>
<key>Title</key>
<string>日付</string>
<key>After</key>
<string>paste-result</string>
</dict>
</array>
<key>Extension Identifier</key>
<string>com.KMBridge</string>
<key>Extension Name</key>
<string>日付挿入</string>
</dict>
</plist>
「KMBridge.applescript」
次のソースコードをテキストファイルにコピー&ペーストし、「KMBridge.applescript」というファイル名で保存します。
"Popclip-insert-date"の部分にはKeyboard Maestroで参照するマクロ名を入れます。
tell application "Keyboard Maestro Engine"
do script "Popclip-insert-date" with parameter "{popclip text}"
end tell
PopClip拡張機能の作成
次の手順でPopClip拡張機能に変換します。
- 新しいフォルダーを作成
- 「Config.plist」と「KMBridge.applescript」、および、PNGファイルをそのフォルダーに入れる
- フォルダー名の末尾に「.popclipext」を付ける( → 「KMBridge-insert-date」になる)
これによってフォルダーアイコンが変わり、PopClip拡張機能に変換されます。
- 「.popclipext」を削除すると普通のフォルダーに戻ります。
- 公式から出ている拡張機能の拡張子は「.popclipextz」ですが、zは不要です。
ハマりポイント
手順2の後、Zip圧縮してから拡張子を変更する方法はNGです。
PopClip拡張機能のインストール
「KMBridge-insert-date.popclipext」ファイルをダブルクリックするとインストールされます。
[符号無しの拡張子]というダイアログボックスが表示されたら、[〜をインストール]ボタンをクリックします。
拡張機能の管理
- 拡張子は「~/Library/Application Support/PopClip/Extensions」にインストールされる
- 「Extensions」フォルダーごとDropboxに待避させ、そのシンボリックリンクを戻しておくのがスマート
Keyboard Maestroマクロの作成(1)
サンプルとして選択している文字列に続けて「-20220810」のように8桁の日付が入るようにするマクロです。
「%TriggerValue%」がPopClipで参照するテキストです。
Keyboard Maestroマクロの作成(2)
変数に受け渡す場合には次のように記述します。
Keyboard Maestroマクロの作成(3)
マクログループを呼び出すこともできます。
Show Macro Groupアクションで、呼び出したいマクログループを指定します。
PopClipの呼び出し(Alfred経由)
PopClipは、標準機能でキーボードショートカットを設定することができます。
テキストを選択後、PopClipはすぐに呼びされますが、マレに表示されないことがありますので、Alfred経由で「controlキーのダブルタップ」で呼び出せるように設定してみましょう。
非常に簡単に作成できます。
on alfred_script(q)
tell application "PopClip" to appear
end alfred_script
ハマりポイント
こちらの拡張機能は、PopClipからAlfredに文字列を受け渡すものです。
ダウンロード
次をまとめてダウンロードできるようにしておきました。
- Keyboard Maestroマクロ
- PopClip拡張機能
- Alfred workflow
PopClip拡張機能作成マクロ
PopClip拡張機能を作成するマクロを作りました。
次のように割り切り、「拡張機能名」、「タイトル」のみを
- ActionScriptファイル名は常に「KMBridge.applescript」に
- アイコンファイル名は常に「icon.png」に(中身が★のファイルを仮作成)
- 識別子は「com.KMBridge-4748465」に(数字部分はランダム生成)
- デスクトップにフォルダーを作成します。
- 仮のPNGファイルが入っています。ファイル名はそのまま、実際に使うものに差し替えてください。
- その後、フォルダー名に「.popclipext」を付けてください。自動的に拡張機能に変換されます。※クリップボードに入れています。
- Keyboard Maestroマクロを作成し、マクロ名に拡張機能名を設定してください。
- Keyboard Maestroマクロ内でPopClipのテキストを参照するには「\%TriggerValue\%」をお使いください。
リソース
TwitterのKeyboard Maestro User Group JPにて、お探しくん@DTP仕事承り候さんから紹介いただきました。ありがとうございます!
PopClip向けのAlfred workflowについては、こちらに記事が参考になりました。
- キーボード操作でPopclipをポップアップさせる、Alfredのワークフローを作る | Gadgeter | ページ 2
- キーボード操作でPopclipをポップアップさせる、Alfredのワークフローを作る | Gadgeter
その他
NotionはPopClipに近いUIを持っているため、除外リストに入れておいた方がよさそう。
その後、運用してみて
2週間ほど運用してきたのですが、PopClipと似たようなUIを持つNotionやnoteとの愛称が悪い。当然ですが…
そのため、ブラウザー類はすべて除外リストに入れました。