Me encantaría poder aprovechar las características del Centro de notificaciones de 10.8 en AppleScripts y scripts de shell que escribo.
¿Hay un comando incorporado o una biblioteca de terceros que pueda usar desde AppleScript o script de shell?
Idealmente, el tipo y el ícono de la notificación podrían controlarse, pero se agradecería incluso la posibilidad de activar un banner básico con un ícono común (pero texto personalizado).
terminal
applescript
mountain-lion
notification-center
command-line
Nathan Greenstein
fuente
fuente
Respuestas:
Con Mavericks y versiones posteriores, puede hacerlo utilizando la 'notificación de visualización' de AppleScript:
Eso es todo, ¡literalmente así de simple! No hay 3 rd bibliotecas -partido o aplicaciones requiere y es completamente portátil para su uso en otros sistemas. Notificación 10.9 en la parte superior, 10.10 DP en el medio, 10.10 en la parte inferior.
AppleScript se puede ejecutar desde el shell usando / usr / bin / osascript:
También puede personalizar aún más la alerta agregando ...
un subtitulo
Agregue 'subtítulo' seguido de la cadena o variable que contiene el subtítulo.
El ejemplo anterior produce la siguiente notificación:
sonar
Agregue 'nombre de sonido' seguido del nombre de un sonido que se reproducirá junto con la notificación.
Los nombres de sonido válidos son los nombres de sonidos ubicados en ...
~/Library/Sounds
/System/Library/Sounds
Las notificaciones de publicación se pueden ajustar como un script de línea de comandos. El siguiente código se puede ejecutar en la Terminal y agregará un script a / usr / local / bin (debe existir, agregar a $ PATH) llamado
notify
.Este es el script que agregará lo anterior para notificar.
Ahora para mostrar una notificación:
fuente
display notification
es que cuando hace clic en él, aparece el cuadro de diálogo Abrir archivo."display ... '$mytext' ..."
, pero la necesidad escapado comillas dobles:"display notification \"$mytext\" ..."
.notificador de terminal
Desde el archivo Léame:
fuente
Solo quiero agregar una nota a la respuesta de @ grgarside, porque sé que muchas personas quieren tener una ventana emergente de notificación que solo se puede descartar haciendo clic en el botón.
He encontrado la solución para ti:
En realidad, estaba controlado por una configuración en Preferencia del sistema, en lugar de algún parámetro en el script escrito. Estas dos imágenes deberían explicarlo todo
Gracias @grgarside por la excelente respuesta.
fuente
Script Editor
es solo paraScript Editor.app
yosascript
. En un flujo de trabajo de servicio, esAutomator Runner
. Cuando está adentroAutomator.app
, esAutomator
.Ahora puede hacer esto con Growl2 ( disponible en la App Store ). Instale Growl y active "Notificaciones de OS X" (captura de pantalla)
Además, deberá instalar GrowlNotify para una herramienta de línea de comandos para enviar notificaciones Growl. Puede descargar esta herramienta de forma gratuita en la página de descargas .
Ahora puede generar notificaciones de Growl desde la línea de comandos, que se enviarán al Centro de notificaciones. Por ejemplo:
Tenga en cuenta que actualmente no parece posible cambiar el icono de la aplicación.
fuente
--icon path/to/icon.png
de íconos.Recientemente bifurqué al terminal-notificador para construir una herramienta de línea de comandos para mostrar Alertas de notificación (con acciones) y Alertas de tipo de respuesta.
Lo uso con mis scripts de shell y aplicaciones de Golang para obtener respuestas interactivas de los usuarios.
https://github.com/vjeantet/alerter
fuente
La solución de @grgarside es agradable, pero es vulnerable a la inyección de scripts, lo que puede ser un problema de seguridad importante cuando se usa, por ejemplo, para mostrar el contenido del archivo de registro o algo similar.
Esto debería ser más seguro:
fuente
I have a "laser"
sin que le digan que tiene un error de sintaxis al "citar" sus "palabras". Al escapar, puede:script 'I have a "laser"'
Como Growl no es gratuito y el notificador de terminal no está disponible en los sistemas anteriores a 10.8, tiendo a usar cocoaDialog . Es gratuito y de código abierto, por lo que probablemente también pueda distribuirlo junto con sus scripts.
Si no necesita mucha personalización, también puede usar AppleScript,
display notification
que también puede llamar desde el shell como ya han mencionado otros.Pero tenga en cuenta que AppleScript parece requerir comillas dobles. Entonces, si necesita variables, esto no funcionará :
Tendrá que usar comillas dobles escapadas. Esto es feo pero funciona :
fuente
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
(Esta es una implementación alternativa basada en la excelente respuesta de @ grgarside).
AppleScript se puede interpretar directamente colocando
osascript
la línea shebang.Guarde esto como
notify
en algún lugar de su ruta, por ejemplo/usr/local/bin/notify
, y hágalo ejecutable (chmod +x notify
). Acepta un mensaje y un título opcional. Si alguno tiene un espacio en blanco, envuélvalo entre comillas para que el shell lo interprete como un argumento único.fuente
Aquí hay uno genial que utilizo en un script ruby en OS X (para que pueda iniciar un script y obtener una actualización incluso después de alejarme de la ventana):
fuente
Una alternativa:
En
.bash_profile
:Use el comando:
sys-notify "title" "message"
fuente
Documentación oficial
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/DisplayNotifications.html
Copiando el texto aquí, en caso de que el documento se mueva o se elimine.
fuente
Gracias, esto era justo lo que necesitaba para algunos scripts de usuario. Hice una ligera modificación para agregar un subtítulo y sonido. Si no se proporciona un valor, se ignora.
Para el sonido, use un nombre de archivo de sonido sin la extensión de / System / Library / Sounds. Por ejemplo, para usar el archivo Ping.aiff, use Ping por $ 4
fuente