【Mac】Hammerspoonはいいぞ
はじめに
こんにちは。
みなさんしてますか? 効率化。
DXだのAIだの、やたらと効率化・自動化が叫ばれはじめて久しい世の中です。
Macの効率化といえば、AlfredやRaycastのようなアプリが有名かと思います。
これらを使えばアプリの起動、ファイル検索、Web検索なんかは爆速のようです。
一方で、僕は Hammerspoon というツールを使っています。
自分でスクリプトを書いて好きなようにカスタマイズできるので、昔からのお気に入りです。
今日はそんな僕の推しソフトウェアのHammerspoonについて紹介します。
Hammerspoonとは
hammperspoonとは, macOS用の強力な自動化ツールです。
特徴としては, 公式サイトでも説明されているように"LuaスクリプトとOSの橋渡し役"にすぎないという点です。
つまり、
"インストールするだけで最初から便利機能が満載で楽しい!"タイプのツールではなく、
"自分の欲しい機能を自分でコード書いて実現できて楽しい!"タイプのツールです。
ちなみに、先述のとおり言語はLuaを用います。
なにが出来るのか
インストール方法や設定方法は後回しにして、hammerspoonで実現できることを先に紹介します。
僕は基本的に、"マウスやトラックパッドで行ったらめんどくさいことを、hotkeyに登録して呼び出す"という使い方をしています。
具体的には、
window操作系
アクティブなwindowを画面右半分を覆うように移動 & リサイズ
アクティブなwindowを画面左半分を覆うように移動 & リサイズ
アクティブなwindowを画面最大サイズにリサイズ
application切り替え系
特定のhotkeyで、特定アプリを起動 & アクティブwindowにする。
⌘ + G: ブラウザ
⌘ + Space: VScode
⌘ + T: Teams
いわゆるランチャー的な使い方
すべてのアプリケーションから対象を選んで起動 & アクティブwindowにする。
起動中のアプリケーションから対象を選んで起動 & アクティブwindowにする。
Todo管理
⌘ + ,: Todoを追加する入力欄表示
⌘ + /: 未完了のTodo表示 & 選択で完了する
などの設定を行っています。
おそらく多くのことはMacの純正設定や、他の効率化ツールを使うことで同じようなことが出来ると思います。
むしろ、楽さや(初期状態で)出来ることの多さで言えば他の効率化ツールに軍配が上がるでしょう。
それでも僕がhammerspoonを使っているのは、
"ぼくのかんがえたさいきょうのかんきょう"
を作るのが楽しいからです。
共感してくれる同志は一緒にインストールに進みましょう。
インストール方法
公式サイトに書いてある手順に沿ってインストールをしましょう。
やることは超簡単です。
https://github.com/Hammerspoon/hammerspoon/releases/tag/1.0.0 からダウンロードする。
Hammerspoon.appを/Applicationsに配置する。
以上です。
あとは任意の方法(ダブルクリックなりLauncherからなり)でHammerspoonを起動してください。
使い倒す予定の人は忘れずにOS起動時に自動起動するアプリとして設定することをおすすめします。
基本的な使い方
基本的には~/.hammerspoon/init.lua にコードを記述していくだけです。
やりたいことに合致する機能をAPI documentationから探し出し、愚直に実装していきます。
Getting Started with Hammerspoonに記載されているものを以下に引用します。
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "H", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x - 10
win:setFrame(f)
end)
結構なんとなくでも以下のことが分かると思います。
⌘ + Alt + Ctrl + Hの同時押しで、
x方向に何かしらの単位で10だけ負の方向に移動している
関連するdocumentはこちらです。
こんな感じで、hammerspoonに用意されたAPIを使うことで任意の挙動を実現することができます。
様々なAPIが用意されているので、難しいOS nativeのAPIを使うことなく実現したいことのロジック実装に集中すればよいです。
なお、設定ファイルを更新した際はメニューバーのhammerspoonアイコンからReload Configを押下する必要があります。
え?
いちいちリロードを手動で押下するのがめんどくさいですって?
しちゃえばいいじゃないですか、自動化。
だってあなたは既にhammerspoonを持っているのだから、、、
(やりかたは先述のGetting Started with Hammerspoonに記載されてます。pathを監視して変更をトリガーにするのです。)
おわりに
偉そうに書きましたが、正直僕自身hammerspoonのポテンシャルの10%も使いこなせてはいないと思います。
hotkeyをいくつか設定しているだけですし。
ただ、それだけでも十分楽しくて便利なツールです。
興味を持った方はぜひ試してみてください。
既に他の効率化ツールを使っている方もぜひ。
便利ツールなんてなんぼあってもいいですからね。