Hammerspoon で Evernoteの特定ページを開く

この記事では

Hammerspoonを使って、Evernoteの特定ページを開くKey Binding の設定方法について紹介します。 (Evernoteじゃなくても特定アプリと置き換えてもらえればok
やってみたら超簡単でした。

さて

Hammerspoon が面白い - rochefort’s blog
つい先日、Hammerspoonを触ってみたところ、好印象でしたので 手元のMac自動化ツールの一部を移行してみます。

やりたいこと

EvernoteにTODOリスト用のページを作成し、ショートカットで気軽に編集できるようにしていました。
これをHammerspoonでやってみます。

Hammerspoon以前

ざっくり書くと以下のようなことをして実現していました。

1. shellを作成(open evernote:///view/.... しているだけ)
2. shellをアプリ化(MacOS, Resources, Contents/Info.plistを用意)
3. アプリをautomatorでサービス化
4. サービスをMacのショートカットキーに登録

回りくどいですね。
 
少し補足をすると、automator では shell そのままかけるので、「Automator でサービス化、Macのショートカットキーに登録」というのが普通の流れだと思います。多分当時shellのアプリ化をやりたかっただけだったんだと思います。

Hammerspoon以降

init.lua に以下を書くだけ!!

---------------------------------------------------------
-- Evernote
---------------------------------------------------------
hs.hotkey.bind({'shift', 'ctrl'}, 'L', function()
  local url = 'evernote:///view/your_specific_page'
  hs.urlevent.openURLWithBundle(url, 'com.evernote.Evernote')
end)

あら簡単!

補足

Hammerspoon API

Hammerspoon docs: hs.urlevent module

Evernote の URLの調べ方

対象ノートを右クリックしてoptionを押すと 「Copy Note LInk」が「Copy Classic Note Link」に変わるので、選択すると evernote://view/ で始まるノート固有のURLがコピーされます。

Bundle Identifier の調べ方

lsappinfo というコマンドで取得できるようです。知りませんでした。

lsappinfo info -only bundleid Evernote

参考:
【OSX】利用しているアプリケーションのBundle Identifierを調べる - Qiita