macOSで、時間のかかる処理が終わった時や、何かやらないといけない時間になった時など、こんなふうにピコンと通知を出したいことがあるだろう。

そんなときはJXAを使ってこんなスクリプトを書いてどこかに置いておく。
#!/usr/bin/osascript
const app = Application.currentApplication()
app.includeStandardAdditions = true
function run (args) {
app.displayNotification(
args[1],
{ withTitle: args[0], soundName: "Sosumi" }
);
}
タイトルと本文を引数にしてコマンドラインから簡単に呼び出せる。
$ /foo/bar/display_notification.js 'NOTIFICATION TITLE' 'NOTIFICATION BODY'
このへんを読むと詳しいことが書いてある。
osascript コマンドの -e オプションで直接スクリプトを渡すこともできる。
osascript -l JavaScript -e 'const app=Application.currentApplication();app.includeStandardAdditions=true;function run (args) {app.displayNotification("hoge",{ withTitle: "fuga", soundName: "Sosumi" } );}'
ちなみに、鳴らせる音は /System/Library/Sounds/ に入っている。
$ ls /System/Library/Sounds/ Basso.aiff Frog.aiff Hero.aiff Pop.aiff Submarine.aiff Blow.aiff Funk.aiff Morse.aiff Purr.aiff Tink.aiff Bottle.aiff Glass.aiff Ping.aiff Sosumi.aiff
Sosumiがお気に入り。