Ottieni lo stato del Centro notifiche OS X dalla riga di comando


Risposte:


8

In realtà puoi scoprire se la funzione Non disturbare è attualmente abilitata o disabilitata. Il Centro notifiche rilascia un plist nella seguente posizione di cui puoi leggere il valore. Eseguire il seguente per trovare il file plist:

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

Ora puoi leggere il valore dal plist che hai appena trovato usando:

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

NOTA: il tuo nome file effettivo potrebbe essere diverso da quello che ho elencato sopra.

Vedrai una chiave chiamata "doNotDisturb" e avrà un valore di 1 o 0 (abilitato o disabilitato)

Puoi anche cambiarne lo stato facendo:

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

o:

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

Per rendere effettive le modifiche, è necessario riavviare il Centro notifiche digitando:

killall NotificationCenter

In realtà ho scritto uno script di Automator molto semplice, quindi ora posso abilitare / disabilitare il Non disturbare per il Centro notifiche con una scorciatoia da tastiera. Molto maneggevole. :)


Sfortunatamente, l'impostazione di attivazione / disattivazione non funziona su El Capitan.
Zsolt Szatmari,

Neanche su Yosemite funziona
Gianfranco P.

Questo non funzionerà. 1. questo UUID è specifico per te. 2. killall NotificationCenterripristinerà le impostazioni predefinite ma non ricaricherà le impostazioni.
Simba

4

Per ottenere lo stato Non disturbare in Yosemite, inserisci quanto segue nel tuo terminale:

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

1

Probabilmente il modo migliore a cui riesco a pensare è installare il notificatore di terminale e inviargli un messaggio dal terminale.

Installa Terminal Notifier

Terminal Notifier può essere installato tramite Ruby Gems

Genere:

sudo gem installa terminal-notifier

Invia a NC un messaggio

Genere:

terminal-notifier -message "Il centro di notifica è in esecuzione" -title "NC Status"

Se il centro di notifica è in esecuzione, verrà visualizzato il messaggio "Il centro di notifica è in esecuzione"


2
Quanto sopra ha funzionato bene per me, ma è una soluzione manuale piuttosto che un'indicazione di stato programmatica, quindi non gli darò un +1 come risposta a questa domanda. È stato comunque molto utile sotto altri aspetti.
ClearCrescendo,

Dare a questo un voto non equivale a selezionare la risposta come corretta. Se la risposta ti ha aiutato ma non ha risposto alla domanda, puoi dare un voto. se ha risposto alla tua domanda, fai clic sull'icona del segno di spunta sul lato sinistro.
Jmh

1

Al momento, le modalità di interazione programmatica con il Centro notifiche (anche tramite la riga di comando) sono piuttosto limitate. Come ha notato InfluenceJamie, c'è Terminal-Notifier , che ti consente di inviare notifiche dalla riga di comando, ma l'invio di notifiche è praticamente tutto ciò che i programmi possono fare al momento. Dalla mia lettura della documentazione per gli sviluppatori , i programmi possono solo inviare e ottenere informazioni sulle notifiche specifiche che inviano, nessuna informazione sullo stato per il Centro di notifica stesso o altre notifiche. Non esiste inoltre un'interfaccia Applescript.

Quindi al momento, sei limitato a testare manualmente se passa una notifica, come suggerito da InfluenceJamie , o sperando che qualcuno capisca le API private di Apple e crei un'interfaccia a riga di comando.


In MacOS ogni preferenza è memorizzata in alcuni file plist, quindi ci devono essere alcune cose "predefinite da leggere" per fare quello che sto cercando.
user732274

1
Bene, questa è ovviamente una possibilità, ma le impostazioni predefinite sono più per le preferenze permanenti - un'impostazione temporanea potrebbe non essere memorizzata nelle impostazioni predefinite. Tuttavia, questa è probabilmente la soluzione migliore se il suggerimento di InfluenceJamie non funziona per te.
robmathers

Dove dovrebbe essere memorizzato se non in un plist?
user732274

1

L'impostazione del Centro notifiche è memorizzata nella ~/Library/Preferences/ByHostcartella, il che significa che si tratta di impostazioni specifiche della macchina.

Puoi usare il defaults -currentHostcomando per leggere le impostazioni all'interno. -currentHostviene utilizzato per specificare l' ByHostimpostazione non quella specifica dell'utente comune memorizzata ~/Library/Preferences.

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

Il valore di uscita 1indica che è attivato, 0per disabilitato.

In effetti, il comando sopra sta leggendo le opzioni dal ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plistfile.

Avvertenze : l'impostazione delle ByHostopzioni con defaults -currentHost writenon funziona. Le opzioni sono effettivamente scritte nel file, ma non vengono ricaricate dal demone corrispondente. Immagino che questo sia un bug.

Riferimenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.