目次

目次

AppleScriptとHammerspoonを使用して、ロック解除時にアプリケーションを自動的に開く仕組みを作成してみた

アバター画像
本多啓路
アバター画像
本多啓路
最終更新日2025/12/10 投稿日2025/12/12

この記事はレコチョク Advent Calendar 2025 の12日目です。

レコチョクでAndroidアプリの開発をしている本多 啓路です。 この記事が公開される2025年12月12日にLiSAさんのライブに行ってきます!

はじめに

Maker Faire Tokyo 2025に作品を出展する過程の中でAppleScriptを触る機会がありました。

せっかく触る機会があったため、業務の中でもAppleScriptを活かして効率化ができないかなと思い、業務の合間にスクリプトを組んでいました。 この記事ではAppleScriptの初歩的なコードと、実際に効率化できた部分を記載していこうと思います。

AppleScript

AppleScriptは、Macで使える簡単なプログラミング言語です。この言語を使うと、普段Macで行っている作業を自動化したり、便利にしたりすることができます。例えば、毎日やる面倒な作業をボタン一つで済ませたり、複数のアプリを連携させて一度に処理を進めたりすることが可能です。

今回は毎朝PC起動時に朝の業務でルーティンにしている部分、特にメールや予定表の確認などを行うためにアプリケーションを起動する工程を自動化するコードを作成しました。

作成したコードの一部を示します。

// 実行確認ダイアログ(必要でない時にスキップできるように)
set userChoice to display dialog "jobRoutineを実行しますか?" buttons {"No", "Yes"} default button "Yes" cancel button "No"

// Yesが選択された場合のみ実行
if button returned of userChoice is "Yes" then

    // 任意のアプリケーションを開く
    tell application "任意のアプリケーション名"
        activate
        delay 2
    end tell

    tell application "System Events"
        tell process "任意のアプリケーション名"
            set frontmost to true
                try
                    // フルスクリーンにする
                    if not (value of attribute "AXFullScreen" is true) then
                        key code 3 using {command down, control down}
                    end if
                end try
            end tell
        end tell

    delay 1

    ...

    // ブラウザアプリを開いて任意のURLページを表示
    tell application "Google Chrome"    //任意なブラウザアプリ
        activate
        delay 2
        // 新しいタブで開きたいURLを表示
        tell window 1
            set current tab to (make new tab with properties {URL:"開きたいURL"})
        end tell
    end tell

    // 完了メッセージ
    display dialog "すべてのアプリケーションをフルスクリーンで開きました。" buttons {"OK"} default button "OK"

else
    // Noが選択された場合
    display dialog "jobRoutineの実行をキャンセルしました。" buttons {"OK"} default button "OK"
end if

AppleScriptの中では初歩中の初歩になる構文ですが、これを実行すれば任意のアプリケーションやURLを開くことができるようになります。

しかし、AppleScriptだけでは特定のタイミングや条件で自動的にスクリプトを実行する機能が直接提供されていません。

なので、今回はHammerspoonというサードパーティツールを使用してロック画面を解除したタイミングでAppleScriptが自動で実行されるようにします。

Hammerspoon

Hammerspoonは、macOS用のオートメーションツールで、ユーザーがLuaスクリプトを作成することで、さまざまなタスクを自動化することができます。今回は画面ロックが解除されたタイミングでAppleScriptを実行させます。

こちらはbrewからインストールできます。

brew install --cask hammerspoon

インストール後、アプリを起動し「システム設定」>「プライバシーとセキュリティ」>「アクセシビリティ」で「Hammerspoon.app」をONにします。

すると、右上のメニューバーアイコンにHammerspoonが表示されるので「Open Config」を押下し、「init.lua」を以下の通りに編集しました。

// AppleScriptを動かす関数
local function runAppleScript()
  hs.execute("osascript AppleScriptのパス")
end

// スクリーンロック解除を監視する
local unlockWatcher = hs.caffeinate.watcher.new(
  function(event)
    if event == hs.caffeinate.watcher.screensDidUnlock then
      runAppleScript()
    end
  end
)

//監視のスタート
unlockWatcher:start()

これでロックを解除した際に自動でAppleScriptが実行できるようになりました。

ロック解除時にアプリケーションを自動起動
(AppleScriptの内容は簡略化しています)

終わりに

AppleScriptとHammerspoonを利用してロック解除時にアプリケーションを自動的に開く仕組みを作成してみました。 これにより毎朝行っているルーティン作業を効率化することができたと思います。

AppleScriptを利用することで業務効率化を測れることはまだまだあるので、積極的に利用していきたいです。

明日のレコチョク Advent Calendar 2025 は13日目「X-point REST APIを使って申請書自動起票マクロを作りました」です。お楽しみに!

アバター画像

本多啓路

目次