この記事では
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