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?.
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?.
Antworten:
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. :) :)
killall NotificationCentersetzt die Einstellungen auf die Standardeinstellungen zurück, lädt die Einstellungen jedoch nicht neu.
Der wahrscheinlich beste Weg, den ich mir vorstellen kann, besteht darin, den Terminal-Notifier zu installieren und ihm eine Nachricht vom Terminal zu senden.
Terminal Notifier kann über Ruby Gems installiert werden
Art:
sudo gem installiere terminal-notifier
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.
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.
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.