Abrufen des OS X Notification Center-Status über die Befehlszeile

9

Unter OS X 10.8 können Benutzer das Benachrichtigungscenter für einen einzelnen Tag deaktivieren. Gibt es eine Möglichkeit zu überprüfen, ob es über die Befehlszeile aktiviert ist?.

user732274
quelle

Antworten:

8

Sie können tatsächlich herausfinden, ob die Option Nicht stören derzeit aktiviert oder deaktiviert ist. Das Benachrichtigungscenter legt eine Liste an der folgenden Stelle ab, deren Wert Sie lesen können. Führen Sie Folgendes aus, um die Plist-Datei zu finden:

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

Jetzt können Sie den Wert aus der gerade gefundenen Liste lesen, indem Sie Folgendes verwenden:

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

HINWEIS: Ihr tatsächlicher Dateiname kann von dem oben aufgeführten abweichen.

Sie sehen einen Schlüssel namens "doNotDisturb", der entweder den Wert 1 oder 0 hat (aktiviert oder deaktiviert).

Sie können den Status auch folgendermaßen ändern:

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

oder:

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

Damit die Änderung wirksam wird, müssen Sie das Notification Center neu starten, indem Sie Folgendes eingeben:

killall NotificationCenter

Ich habe tatsächlich ein sehr einfaches Automator-Skript geschrieben, sodass ich jetzt das Do Not Disturb for Notification Center mit einer Tastenkombination aktivieren / deaktivieren kann. Sehr praktisch. :) :)

Ali
quelle
Leider funktioniert das Ein- und Ausschalten bei El Capitan nicht.
Zsolt Szatmari
Funktioniert auch nicht bei Yosemite
Gianfranco P.
Das wird nicht funktionieren. 1. Diese UUID ist spezifisch für Sie. 2. killall NotificationCentersetzt die Einstellungen auf die Standardeinstellungen zurück, lädt die Einstellungen jedoch nicht neu.
Simba
4

Um den Status " Nicht stören " in Yosemite zu erhalten, geben Sie einfach Folgendes in Ihr Terminal ein:

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

Der wahrscheinlich beste Weg, den ich mir vorstellen kann, besteht darin, den Terminal-Notifier zu installieren und ihm eine Nachricht vom Terminal zu senden.

Installieren Sie Terminal Notifier

Terminal Notifier kann über Ruby Gems installiert werden

Art:

sudo gem installiere terminal-notifier

NC eine Nachricht senden

Art:

terminal-notifier -message "Das Benachrichtigungscenter läuft" -title "NC Status"

Wenn das Benachrichtigungscenter ausgeführt wird, wird die Meldung "Das Benachrichtigungscenter wird ausgeführt" angezeigt.

JamiePatt
quelle
2
Das oben Gesagte hat für mich gut funktioniert, aber es ist eher eine manuelle Lösung als eine programmatische Statusanzeige, daher gebe ich keine +1 als Antwort auf diese Frage. Es war jedoch in anderer Hinsicht sehr nützlich.
ClearCrescendo
Dies zu bewerten ist nicht dasselbe wie die Antwort als richtig auszuwählen. Wenn die Antwort Ihnen geholfen hat, die Frage aber nicht beantwortet hat, können Sie sie positiv bewerten. Wenn es Ihre Frage beantwortet hat, klicken Sie auf das Häkchensymbol auf der linken Seite.
jmh
1

Derzeit sind die Möglichkeiten zur programmgesteuerten Interaktion mit Notification Center (auch über die Befehlszeile) recht begrenzt. Wie InfluenceJamie bemerkte, gibt es einen Terminal-Notifier , mit dem Sie Benachrichtigungen über die Befehlszeile senden können. Das Senden von Benachrichtigungen ist jedoch so gut wie alles, was Programme derzeit tun können. Nach dem Lesen der Entwicklerdokumentation können Programme nur Informationen zu den von ihnen gesendeten spezifischen Benachrichtigungen, keine Statusinformationen für das Notifcation Center selbst oder andere Benachrichtigungen senden und abrufen. Es gibt auch keine Applescript-Oberfläche.

Im Moment können Sie also nur manuell testen, ob eine Benachrichtigung eingeht, wie InfluenceJamie vorgeschlagen hat , oder hoffen, dass jemand die privaten APIs von Apple herausfindet und eine Befehlszeilenschnittstelle erstellt.

Robmathers
quelle
In MacOS werden alle Einstellungen in einigen Plist-Dateien gespeichert, daher muss es einige "Standardeinstellungen zum Lesen" geben, um das zu tun, wonach ich suche.
user732274
1
Nun, das ist natürlich eine Möglichkeit, aber die Standardeinstellungen dienen eher permanenten Einstellungen - eine temporäre Einstellung wird möglicherweise nicht in den Standardeinstellungen gespeichert. Dies ist jedoch wahrscheinlich die beste Wahl, wenn der Vorschlag von InfluenceJamie für Sie nicht funktioniert.
Robmathers
Wo soll dies aufbewahrt werden, wenn nicht in einer Liste?
user732274
1

Die Einstellungen des Benachrichtigungscenters werden im ~/Library/Preferences/ByHostOrdner gespeichert. Dies bedeutet, dass es sich um maschinenspezifische Einstellungen handelt.

Sie können den defaults -currentHostBefehl verwenden, um die Einstellungen darin zu lesen. -currentHostwird verwendet, um die ByHostEinstellung anzugeben, in der nicht die allgemeine benutzerspezifische Einstellung gespeichert ist ~/Library/Preferences.

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

Ausgabewert 1bedeutet, dass es 0für deaktiviert aktiviert ist .

Tatsächlich liest der obige Befehl Optionen aus der ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plistDatei.

Vorsichtsmaßnahmen : Das Einstellen von ByHostOptionen mit defaults -currentHost writefunktioniert nicht. Die Optionen werden zwar in die Datei geschrieben, aber nicht vom entsprechenden Daemon neu geladen. Ich denke, das ist ein Fehler.

Verweise

Simba
quelle