コマンドラインからOS X通知センターの状態を取得する


回答:


8

サイレントが現在有効になっているか無効になっているかを実際に確認できます。通知センターは、値を読み取ることができる次の場所にplistをドロップします。次のコマンドを実行して、plistファイルを見つけます。

ls ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist

これで、次のコマンドを使用して、見つけたplistから値を読み取ることができます。

defaults read ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist

注:実際のファイル名は、上記のファイル名とは異なる場合があります。

「doNotDisturb」というキーが表示され、値は1または0(有効または無効)になります。

次のようにして、ステータスを変更することもできます。

defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 1

または:

defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 0

変更を有効にするには、次のように入力して通知センターを再起動する必要があります。

killall NotificationCenter

非常にシンプルなAutomatorスクリプトを実際に作成したので、通知センターのサイレントモードをキーボードショートカットで有効/無効にできるようになりました。とても便利な。:)


残念ながら、これをオン/オフに設定してもEl Capitanでは機能しません。
Zsolt Szatmari 2015年

ヨセミテでも機能しません
Gianfranco P.

これは機能しません。1.このUUIDはあなたに固有です。2. killall NotificationCenter設定をデフォルトにリセットしますが、設定をリロードしません。
Simba

4

取得するにはドゥ邪魔しないでヨセミテでステータスを、ちょうどあなたのターミナルで次のように入力します。

defaults read ~/Library/Preferences/ByHost/com.apple.notificationcenterui.plist doNotDisturb

1

おそらく私が考えることができる最良の方法は、ターミナル通知機能をインストールして、ターミナルからメッセージを送信することです。

端末通知機能をインストール

端末通知機能はRuby Gemsからインストールできます

タイプ:

sudo gem install terminal-notifier

NCにメッセージを送信

タイプ:

terminal-notifier -message "通知センターが実行中です" -title "NC Status"

通知センターが稼働している場合は、「通知センターが稼働しています」というメッセージが表示されます


2
上記はうまく機能しましたが、プログラムによるステータス表示ではなく手動による解決策であるため、この質問への回答として+1はしていません。ただし、他の点では非常に役立ちました。
ClearCrescendo 2014年

これに賛成票を与えることは、正しい答えを選択することと同じではありません。回答が役に立ったが質問に答えなかった場合は、賛成票を投じることができます。それがあなたの質問に答えたなら、左側のチェックマークアイコンをクリックしてください。
jmh

1

現在のところ、通知センターをプログラムで操作する方法(コマンドラインを含む)はかなり制限されています。InfluenceJamieが指摘したように、コマンドラインから通知を送信できるterminal-notifierがありますが、現時点で通知の送信はほとんどすべてのプログラムで実行できます。私が開発者向けドキュメントを読んだところ、プログラムは送信した特定の通知に関する情報のみを送受信でき、Notifcation Center自体のステータス情報やその他の通知は取得できません。Applescriptインターフェースもありません。

したがって、現時点では、InfluenceJamieが提案したように、通知が通過するかどうかを手動でテストするか、誰かがAppleのプライベートAPIを見つけてコマンドラインインターフェースを作成することを期待しています。


MacOSでは、すべての設定がいくつかのplistファイルに保存されているため、私が探していることを実行するには、「デフォルトで読み取られる」ものが必要です。
user732274

1
まあ、それはもちろん可能ですが、デフォルトは永続的な設定のためのものです-一時的な設定はデフォルトに保存されないかもしれません。ただし、InfluenceJamieの提案が機能しない場合は、おそらくそれが最善の策です。
robmathers 2012

plistにない場合、これはどこに保存する必要がありますか?
user732274

1

通知センターの設定は~/Library/Preferences/ByHostフォルダーに保存されます。つまり、マシン固有の設定です。

defaults -currentHostコマンドを使用して、内部の設定を読み取ることができます。-currentHostByHost保存されている一般的なユーザー固有の設定ではなく、設定を指定するために使用されます~/Library/Preferences

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

出力値10、無効になっているため、アクティブになっていることを意味します。

実際、上記のコマンドは~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plistファイルからオプションを読み取っています。

警告ByHostオプションを設定しdefaults -currentHost writeても機能しません。オプションは実際にファイルに書き込まれますが、対応するデーモンによって再ロードされません。これはバグだと思います。

参考文献

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.