Obtenga el estado del centro de notificaciones de OS X desde la línea de comandos

9

En OS X 10.8, los usuarios pueden deshabilitar el Centro de notificaciones por un solo día. ¿Hay alguna forma de verificar si está habilitado desde la línea de comando?

usuario732274
fuente

Respuestas:

8

En realidad, puede averiguar si Do Not Disturb está habilitado o deshabilitado actualmente. El Centro de notificaciones coloca una lista en la siguiente ubicación de la que puede leer el valor. Ejecute lo siguiente para encontrar el archivo plist:

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

Ahora, puede leer el valor de la lista que acaba de encontrar usando:

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

NOTA: su nombre de archivo real puede ser diferente al que he enumerado anteriormente.

Verá una clave llamada "doNotDisturb" y tendrá un valor de 1 o 0 (habilitado o deshabilitado)

También puede cambiar su estado haciendo:

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

Para que el cambio surta efecto, deberá reiniciar el Centro de notificaciones escribiendo:

killall NotificationCenter

De hecho, he escrito un script de Automator muy simple, así que ahora puedo habilitar / deshabilitar el No molestar para el Centro de notificaciones con un atajo de teclado. Muy útil. :)

Ali
fuente
Desafortunadamente, activar / desactivar esta opción no funciona en El Capitan.
Zsolt Szatmari
Tampoco funciona en Yosemite
Gianfranco P.
Esto no funcionara. 1. este UUID es específico para usted. 2. killall NotificationCenterrestablecerá la configuración predeterminada pero no volverá a cargar la configuración.
Simba
4

Para obtener el estado No molestar en Yosemite, solo ingrese lo siguiente en su terminal:

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

Probablemente la mejor forma en que se me ocurra es instalar el notificador de terminal y enviarle un mensaje desde el terminal.

Instalar notificador de terminal

El notificador de terminal se puede instalar a través de Ruby Gems

Tipo:

sudo gem install terminal-notifier

Envíale un mensaje a NC

Tipo:

terminal-notifier -message "El centro de notificaciones se está ejecutando" -title "NC Status"

Si el centro de notificaciones se está ejecutando, recibirá un mensaje que dice "El centro de notificaciones se está ejecutando"

JamiePatt
fuente
2
Lo anterior funcionó bien para mí, pero es una solución manual en lugar de una indicación de estado programático, por lo que no le doy un +1 como respuesta a esta pregunta. Sin embargo, fue muy útil en otros aspectos.
ClearCrescendo
Darle un voto positivo no es lo mismo que seleccionar la respuesta como correcta. Si la respuesta lo ayudó pero no respondió la pregunta, puede darle un voto positivo. Si respondió su pregunta, haga clic en el icono de marca de verificación en el lado izquierdo.
jmh
1

Por el momento, las formas de interactuar con el Centro de notificaciones mediante programación (incluso a través de la línea de comandos) son bastante limitadas. Como InfluenceJamie señaló, hay un notificador de terminal , que le permite enviar notificaciones desde la línea de comandos, pero el envío de notificaciones es prácticamente todo lo que pueden hacer los programas en este momento. Según mi lectura de la documentación del desarrollador , los programas solo pueden enviar y obtener información sobre las notificaciones específicas que envían, sin información de estado del Centro de notificaciones en sí mismo u otras notificaciones. Tampoco hay una interfaz Applescript.

Por lo tanto, en este momento, está limitado a probar manualmente si se recibe una notificación, como sugirió InfluenceJamie , o esperar que alguien descubra las API privadas de Apple y cree una interfaz de línea de comandos.

ladrones
fuente
En MacOS, cada preferencia se almacena en algunos archivos plist, por lo que debe haber algunas cosas de "lectura predeterminada" para hacer lo que estoy buscando.
user732274
1
Bueno, esa es una posibilidad, por supuesto, pero los valores predeterminados son más para preferencias permanentes: una configuración temporal podría no almacenarse en los valores predeterminados. Sin embargo, esa es probablemente su mejor opción si la sugerencia de InfluenceJamie no funciona para usted.
Robmathers
¿Dónde se debe almacenar esto si no está en una lista?
user732274
1

La configuración del Centro de notificaciones se almacena en la ~/Library/Preferences/ByHostcarpeta, lo que significa que es una configuración específica de la máquina.

Puede usar el defaults -currentHostcomando para leer la configuración dentro. -currentHostse usa para especificar la ByHostconfiguración, no la específica del usuario común almacenada en ~/Library/Preferences.

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

El valor de salida 1significa que está activado, 0para deshabilitado.

De hecho, el comando anterior está leyendo opciones del ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plistarchivo.

Advertencias : Establecer ByHostopciones con defaults -currentHost writeno funciona. Las opciones están escritas en el archivo, pero el demonio correspondiente no vuelve a cargarlas. Supongo que esto es un error.

Referencias

Simba
fuente