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拡張機能に変換します。

  1. 新しいフォルダーを作成
  2. 「Config.plist」と「KMBridge.applescript」、および、PNGファイルをそのフォルダーに入れる
  3. フォルダー名の末尾に「.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については、こちらに記事が参考になりました。

その他

NotionはPopClipに近いUIを持っているため、除外リストに入れておいた方がよさそう。

その後、運用してみて

2週間ほど運用してきたのですが、PopClipと似たようなUIを持つNotionやnoteとの愛称が悪い。当然ですが…

そのため、ブラウザー類はすべて除外リストに入れました。