Macで大量の通知パネルを一括で閉じるショートカットキーを設定する
概要
見逃したくない通知を通知パネルの設定にしていると、いちいちクリックして閉じるのが面倒...
一括で閉じれるショートカットキーを設定する方法を探したのですが、すっきりした解決は見つからず、少し力技ですが実装できたので記録を残しておきます。
環境
macOS 10.12.6
Snap
おおまかなステップ
- AppleScriptで一括で通知を閉じる処理をアプリ化
- 作ったアプリに"Accessibility"の許可を与える
- snapを使ってアプリをショートカットキーに割り当てて実行
AppleScriptで一括で通知を閉じる処理をアプリ化
スクリプトエディタを実行
おそらくデフォルトで入ってるはず
AppleScriptで処理を書く
通知を一括で閉じる処理は下記記事で紹介されていたので、そのまま使わせて頂きます。
my closeNotif() on closeNotif() tell application "System Events" tell process "Notification Center" set theWindows to every window repeat with i from 1 to number of items in theWindows set this_item to item i of theWindows try click button 1 of this_item on error my closeNotif() end try end repeat end tell end tell end closeNotif
ファイルフォーマットを「アプリケーション」で保存
作ったアプリに"Accessibility"の許可を与える
Snapを使ってアプリをショートカットキーに割り当てる
Snapのmanualから先程つくったアプリを追加します。
あとはショートカットからアプリを呼び出せばOK
まとめ
以上の設定で少し力技ですが、通知パネルを一括で閉じるショートカットキーを設定することができました。
何かしら他の方にもすぐ使っていただけるような形式で実装できればよかったのですが、力及ばず...
Snapは普段から使っているアプリなのでそれを活かす形で実装してみました
困っている方の参考になれば幸いです
以下調査の中でのトライ&エラー
参考にさせていただいた記事などでapple scriptをautometorを使って、サービスとして実装する方法が紹介されていました。
今回の処理は"Accessibility"の許可を実行するアプリに与えないといけないのですが、ショートカットを割り当ててChromeを開いているときなどに実行すると、現在アクティブになっているアプリのサービスとして実行されるため、Chromeにも"Accessibility"の許可を与えないと動かないという挙動になってしまいました
すべてのアプリに"Accessibility"の許可を与えるわけにもいかずこの方法は断念...
こうするとできるよというのがあれば教えていただけるとうれしいです!