10 votes

Obtenir l'état du centre de notification d'OS X à partir de la ligne de commande

Sous OS X 10.8, les utilisateurs peuvent désactiver le centre de notification pour une seule journée. Existe-t-il un moyen de vérifier s'il est activé à partir de la ligne de commande ?

8voto

Ali Points 104

Vous pouvez en fait savoir si la fonction Ne pas déranger est actuellement activée ou désactivée. Notification Center dépose un plist à l'emplacement suivant dont vous pouvez lire la valeur. Exécutez ce qui suit pour trouver le fichier plist :

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

Maintenant, vous pouvez lire la valeur de la plist que vous venez de trouver en utilisant :

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

REMARQUE : votre nom de fichier réel peut être différent de celui que j'ai indiqué ci-dessus.

Vous verrez une clé appelée "doNotDisturb" et elle aura une valeur de 1 ou 0 (activée ou désactivée).

Vous pouvez également changer son statut en le faisant :

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

ou :

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

Pour que le changement prenne effet, vous devrez redémarrer le Centre de notification en tapant :

killall NotificationCenter

J'ai en fait écrit un script d'Automator très simple afin que maintenant je puisse activer/désactiver le Do Not Disturb pour le Centre de Notification avec un raccourci clavier. Très pratique :)

5voto

Jose Ortiz Points 101

Pour obtenir le Ne pas déranger dans Yosemite, il suffit d'entrer ce qui suit dans votre terminal :

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

3voto

Simba Points 1071

Les paramètres du centre de notification sont stockés dans la mémoire de l'ordinateur. ~/Library/Preferences/ByHost ce qui signifie qu'il s'agit d'un paramètre spécifique à la machine.

Vous pouvez utiliser defaults -currentHost pour lire les paramètres qui s'y trouvent. -currentHost est utilisé pour spécifier le ByHost et non le paramètre spécifique de l'utilisateur commun stocké dans ~/Library/Preferences .

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

Valeur de sortie 1 signifie qu'il est activé, 0 pour les handicapés.

En fait, la commande ci-dessus lit les options à partir de ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plist fichier.

Avertissements : Réglage ByHost options avec defaults -currentHost write ne fonctionne pas. Les options sont bien écrites dans le fichier, mais il n'est pas rechargé par le démon correspondant. Je suppose qu'il s'agit d'un bogue.

Références

2voto

smack0007 Points 5215

Le meilleur moyen auquel je pense est d'installer le terminal notifier et de lui envoyer un message depuis le terminal.

Installer le Notificateur de terminal

Le notificateur de terminal peut être installé par le biais de Ruby Gems.

Type :

sudo gem install terminal-notifier

Envoyer un message à NC

Type :

terminal-notifier -message "The notification center is running" -title "NC Status"

Si le centre de notification est en cours d'exécution, vous obtiendrez un message disant "Le centre de notification est en cours d'exécution".

1voto

Ged Byrne Points 481

Pour l'instant, les moyens d'interagir avec le centre de notification de manière programmatique (y compris via la ligne de commande) sont assez limités. Comme l'a noté InfluenceJamie, il y a terminal-notifier qui vous permet de envoyer notifications depuis la ligne de commande, mais l'envoi de notifications est à peu près tout ce que les programmes peuvent faire pour le moment. D'après ma lecture de la documentation des développeurs Les programmes ne peuvent envoyer et obtenir des informations que sur les notifications spécifiques qu'ils envoient, pas d'informations sur l'état du Centre de notification lui-même ou d'autres notifications. Il n'y a pas non plus d'interface Applescript.

Donc, pour le moment, vous êtes limité à tester manuellement si une notification est transmise, comme le font les autres. InfluenceJamie a suggéré ou en espérant que quelqu'un découvre les API privées d'Apple et crée une interface en ligne de commande.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X