スクリーンショットをAppleScriptで超強力に
AppleScriptで何かアプリやmacOSの機能を呼び出せる、といっても「どのように使うのか分からない」「どんな用途に使うのか分からない」という声が聞かれました。そこで、日常的な用途でAppleScriptを使えるとどう操作の質が変わるのか、具体的な実例をご紹介しましょう。
スクリーンショットをAppleScriptで
画面の表示内容をそのまま画像ファイルに書き出す、スクリーンショット機能の活用を例に示します。
ここでは、スクリーンショットをAppleScriptで実行したり、スクリーンショットで撮影した画像の処理を行なったり、スクリーンショットの設定を変更することなどを「スクリーンショットをAppleScriptで操作する」と定義します。
スクリーンショット撮影を実行
ただ漫然と撮ることもできますし、定期的に(数時間ごと、数分ごと、数秒ごと)スクリーンショットの撮影も行えます。特定のアプリが最前面にいるときにだけ撮影できます。音声認識で、何かのキーワードに応答して撮ることもできますが、誤認識する可能性もあるので、「お遊び」ぐらいの位置付けでしょうか。
スリープ解除したときの画面だけをスクリーンショットすることもできますし、撮るときに「アクティビティモニタ」を起動して、どのようなアプリが起動しているかを表示したまま撮影することも可能です。
最前面にあるウィンドウのみ切り抜いて、他の部分を削除するとか。
一昔前まではこの画像処理にAdobe Photoshopなどのアプリの併用が欠かせませんでしたが、macOS内部の各種機能を直接呼び出せるようになったので、AppleScriptだけでできます。
スクリーンショットの設定変更
設定の変更が行えます。これは、シェルコマンドをAppleScript経由で実行するものです。キャプチャ画像形式(JPEG、PNG、PDF、TIFF)の変更、ウィンドウの影の有無などが行えます。
設定の変更をそんなにひんぱんに行うことはありませんので、一応「できる」というぐらいでしょうか。スクリプトメニューに入れておいて呼び出すぐらいです。
撮影した画面を検知して削除
複数の画面をMacにつないで使っている場合に、スクリーンショット(Command-Shift-3)を実行すると、すべての画面のキャプチャが撮れてしまいます。AppleScriptを用いれば、特定のスクリーン上のキャプチャ画像だけを残したり、特定のスクリーンの画面キャプチャを削除できます。
画面がRetina Display化された関係で、1画面のキャプチャを撮っただけで5Mバイトぐらいになります(ピクセル数と内容の複雑さによる)。まして、4Kや5Kのディスプレイを複数追加していれば、その分(無駄な)キャプチャ画像が増えてしまいます。
メインスクリーン上で撮影されたキャプチャ画像を残して他を削除するといった処理は、SSDの容量の無駄使いを防ぐことでしょう。
アプリのメニュー内容をすべてキャプチャ
アプリのメニュー内容(コンテクストメニューなど)を表示させてキャプチャするような処理もよくやっています。使い方を説明するような場合に、メニュー内容だけを自動ですべてキャプチャできると、労力を省けます。
さまざまな方法で機能を呼び出す
AppleScriptになっていれば、macOS上の各種AppleScriptランチャー「スクリプトメニュー」「SwitchControl」などなど。macOS標準装備の音声認識機能を用いて、声で呼び出すことも可能です。
また、サードパーティのランチャーアプリ/周辺機器(Stream Deckなど)から起動できます。
CotEditorやMusic.app、その他のテキストエディタでもメニューからAppleScriptを呼び出す機能を持っているため、機能呼び出しの「やりかた」がいろいろ利用できます。FileMaker Proデータベースの機能として内蔵することも可能です(メニューやボタンから呼び出せる)。
iPhoneやApple WatchからMac上のAppleScriptを実行するツールも用意されており、豊富な使い方が提供されています。
使うと便利、知らなければ不便でも気にならない?
このように、知っていて使えると「Macが別物に化ける」ぐらいの威力があるものの、知らなければ知らないなりに、その人なりに使えてしまうので、それはそれでいいんでしょう。
ただ、自分はお金を出して買ったパソコンについては、それ以上の活躍を期待するので、MacにAppleScriptで縦横無尽に活躍してほしいところです。