🧹

macの通知を一括消去するコマンドを作った

2024/12/14に公開

Macで作業していると通知が主張してきてうっとうしい。いちいち消すのが面倒くさい。こちとらソフトウェアエンジニアなのだ。ホームポジションから手を離すとしんじゃうのだ。

というわけで通知を消去するコマンドを作った。コマンドラインツールさえ作っておけば何とかなる。

コード(短い)

21行しかない。

https://github.com/aromarious/clear-notifications/blob/cb4c682a6291e206c6c40b3be1959c136bf85764/clear-notifications.applescript#L1-L21

  1. 通知センターを開く(メニューバー右端の日付部分を押す)
  2. 「消去」メニューボタンを押して、出てくるメニューの「全て消去」を押す
  3. 通知センターを閉じる(メニューバー右端の日付部分を押す)

UI Browser の助けを借りながら、どうにか動くものが書けた。

インストール方法

brew install できるようにしておいた。よかったらどうぞ。

% brew tap aromarious/tap
% brew install clear-notifications

情報はここで終わり。

以下は日記。読まなくても全然支障ない。

AppleScript語ムズカシネ

実はAppleScriptを大変苦手にしている。

あまりにも苦手なため、今回、Swiftで書けないかと思って調べたが、自分以外のアプリケーションの出した通知に対する操作は制限されており、消去することはできないらしい。ええ。MacもiPhoneみたいにアプリのSandbox化が進んでいく方向を感じる。

悪戦苦闘の末、自分の環境でなんとか動くところまで持っていったが、他の人の環境で動くかどうかまったく分からない。「動きませんでした」と報告してもらってもいいけれども、対応できない可能性が高い。ご自分で試行錯誤してもらった方がよい。リポジトリを置いておく。お好きにどうぞ。何か直した方はプルリクを投げていただければと思う。

http://github.com/aromarious/clear-notifications/

AppleScriptは何回チャレンジしてもどう調べたらいいのか全然わからず、途方にくれてしまう。スクリプトエディタについているドキュメントを見てもあまり足しにならない。読み方がわかっていないのだと思う。

AppleScriptを操れる方は何をどうやって勉強なさったのだろう。よかったらコメントで教えていただけると嬉しい。

Discussion