0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacOS自動化実践ガイド: ShortcutsとHammerspoonで業務効率を最大化

Posted at

MacOS自動化実践ガイド: ShortcutsとHammerspoonで業務効率を最大化

はじめに: なぜShortcutsとHammerspoonを組み合わせるのか?

この記事では、MacOSの自動化ツールであるShortcutsとHammerspoonを組み合わせることで、日々の業務効率を劇的に向上させる方法を解説します。Shortcutsは直感的なインターフェースで簡単なタスクを自動化するのに適しており、HammerspoonはLuaスクリプトによる高度なカスタマイズが可能です。この2つを連携させることで、単純な作業から複雑なワークフローまで、幅広い自動化を実現できます。

この記事を読むことで、以下のことができるようになります。

  • Shortcutsを使って、ファイル操作、テキスト処理、Web API連携などの基本的なタスクを自動化する。
  • Hammerspoonを導入し、Luaスクリプトの基礎を理解して、高度な自動化環境を構築する。
  • ShortcutsとHammerspoonを連携させ、アプリケーションの起動、ウィンドウ操作、クリップボード拡張など、より複雑なワークフローを実装する。
  • 実際の業務で役立つ自動化スクリプトの例を参考に、自身の作業を効率化する。
  • 自動化におけるトラブルシューティングやセキュリティに関する注意点を理解する。

Shortcutsで始める: 簡単なタスク自動化レシピ

Shortcutsは、ドラッグ&ドロップでアクションを組み合わせて自動化フローを作成できるツールです。ここでは、具体的なレシピをいくつか紹介します。

ファイル操作: 特定フォルダのファイルを日付順に並び替える

  1. 「ファイル」アクションで、対象フォルダを選択します。
  2. 「ファイルを取得」アクションで、フォルダ内のファイルを取得します。
  3. 「並び替え」アクションで、「作成日」または「変更日」を基準に並び替えます。
  4. 「ファイル」アクションで、並び替えたファイルを別のフォルダに移動またはコピーします。

テキスト処理: クリップボードのテキストをMarkdown形式に変換する

  1. 「クリップボードの内容を取得」アクションで、クリップボードのテキストを取得します。
  2. 「テキスト」アクションで、Markdown形式に変換するルールを定義します。(例: > {クリップボード}
  3. 「クリップボードにコピー」アクションで、変換後のテキストをクリップボードにコピーします。

Web API連携: 現在の天気を取得して通知する

  1. 「URLを取得」アクションで、天気予報APIのURLを指定します。
    例: https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY
    
  2. 「JSONを取得」アクションで、APIレスポンスをJSON形式で取得します。
  3. 「辞書から値を取得」アクションで、必要な情報(例: 天気、気温)を抽出します。
  4. 「通知を表示」アクションで、取得した情報を通知します。

Hammerspoon導入: 高度な自動化のための環境構築

Hammerspoonは、Luaスクリプトを使用してMacOSを高度にカスタマイズできるツールです。

インストール

  1. Hammerspoon公式サイトからダウンロードし、インストールします。
  2. ~/.hammerspoon/init.lua ファイルを作成し、設定を記述します。

Luaスクリプトの基本

Luaは軽量なスクリプト言語で、Hammerspoonの設定に利用されます。以下は基本的な例です。

-- ホットキーの登録
hs.hotkey.bind({"cmd", "shift"}, "m", function()
  hs.alert.show("Hello, Hammerspoon!")
end)

-- アプリケーションの起動
hs.hotkey.bind({"cmd", "shift"}, "c", function()
  hs.application.launchOrFocus("Google Chrome")
end)

設定ファイルの例

-- ウィンドウ操作
local function moveWindowToScreen(screen, window)
  local screenFrame = screen:frame()
  window:moveToScreen(screen)
  window:setFrame({x=screenFrame.x, y=screenFrame.y, w=screenFrame.w, h=screenFrame.h})
end

hs.hotkey.bind({"ctrl", "alt"}, "left", function()
  local win = hs.window.focusedWindow()
  local currentScreen = win:screen()
  local prevScreen = currentScreen:previous()
  if prevScreen then
    moveWindowToScreen(prevScreen, win)
  end
end)

hs.hotkey.bind({"ctrl", "alt"}, "right", function()
  local win = hs.window.focusedWindow()
  local currentScreen = win:screen()
  local nextScreen = currentScreen:next()
  if nextScreen then
    moveWindowToScreen(nextScreen, win)
  end
end)

ShortcutsとHammerspoonの連携: 複雑なワークフローの実現

ShortcutsからHammerspoonの機能を呼び出すことで、より複雑な自動化が可能です。

ShortcutsからHammerspoonのスクリプトを実行する

  1. Hammerspoonで、実行したいスクリプトを関数として定義します。
    function myCustomFunction(param)
        hs.alert.show("Param: " .. param)
    end
    
  2. Shortcutsの**「URLを取得」アクション**で、HammerspoonのカスタムURLスキームを呼び出します。
    例: hammerspoon://myCustomFunction?param=test
    
  3. Hammerspoon側で、カスタムURLスキームをハンドリングする設定を追加します。
    hs.urlevent.bind("myCustomFunction", function(params)
      myCustomFunction(params.param)
    end)
    

具体例: アプリケーション起動、ウィンドウ操作、クリップボード拡張

  • Shortcutsで特定のアプリを起動し、Hammerspoonでそのアプリのウィンドウを特定の位置に移動させる。
  • Shortcutsでクリップボードの内容を取得し、Hammerspoonで特定のフォーマットに変換してからクリップボードにコピーする。
  • Shortcutsで特定のWebページを開き、Hammerspoonでそのページの特定の要素を抽出する。

実例: 業務効率を上げる自動化スクリプト集

メール処理: 特定の差出人からのメールを自動でアーカイブする

  1. Shortcutsで、メールアプリのAPIを使い、特定の差出人からのメールを検索します。
  2. Shortcutsで、検索結果のメールをアーカイブします。
  3. Hammerspoonで、メールアプリが起動している場合のみ、この処理を実行するように設定します。

Slack連携: 特定のチャンネルの未読メッセージ数を通知する

  1. Shortcutsで、Slack APIを使い、特定のチャンネルの未読メッセージ数を取得します。
  2. Shortcutsで、取得した未読メッセージ数を通知します。
  3. Hammerspoonで、特定の時間帯のみ、この処理を実行するように設定します。

開発環境のセットアップ: プロジェクトごとにターミナルとエディタを起動する

  1. Shortcutsで、プロジェクトのディレクトリを引数として、Hammerspoonのスクリプトを実行します。
  2. Hammerspoonで、指定されたディレクトリでターミナルを開き、エディタを起動します。
  3. Hammerspoonで、ターミナルとエディタのウィンドウを適切な位置に配置します。

トラブルシューティングと注意点

よくあるエラーと解決策

  • Shortcutsの実行エラー: アクションのパラメータ設定や、APIキーの入力ミスなどを確認します。
  • Hammerspoonのスクリプトエラー: Luaの構文エラーや、APIの使い方が間違っている可能性があります。Hammerspoonのコンソールでエラーメッセージを確認します。
  • ShortcutsとHammerspoonの連携エラー: カスタムURLスキームの設定や、Hammerspoon側のハンドラーの設定を確認します。

セキュリティに関する考慮事項

  • APIキーなどの機密情報をスクリプトに直接記述しないように注意します。環境変数やキーチェーンなどを活用しましょう。
  • Hammerspoonのスクリプトは、実行権限を適切に管理しましょう。
  • 信頼できないソースからのスクリプトは実行しないようにしましょう。

まとめ: 自動化の未来と更なる学習リソース

ShortcutsとHammerspoonを組み合わせることで、MacOSの自動化の可能性は無限に広がります。この記事で紹介した例を参考に、自身の業務に合わせてカスタマイズし、更なる効率化を目指しましょう。

更なる学習リソース

  • Shortcuts: Apple公式サイトのドキュメントや、オンラインコミュニティを参考にしましょう。
  • Hammerspoon: Hammerspoon公式サイトのドキュメントや、GitHubのリポジトリを参考にしましょう。
  • Lua: Luaの公式ドキュメントや、オンラインチュートリアルを参考にしましょう。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?