Envoyer une alerte au centre de notifications à partir de la ligne de commande sous OS X

À l'aide d'un excellent outil tiers appelé terminal-notifier, vous pouvez envoyer des alertes et des messages à Notification Center directement à partir de la ligne de commande. Cela a une myriade d'utilisations potentiellement valables, mais un cas d'utilisation fantastique est dans le même sens d'annoncer verbalement quand une commande a terminé ou envoyer une alerte de badge, mais à la place de poster la notification au centre de notification d'OS X Mountain Lion.

Installation du notificateur de terminal

En supposant que vous avez ruby ​​sur le Mac, vous pouvez facilement installer terminal-notifier en utilisant gem:

sudo gem install terminal-notifier

Pour ceux qui ne possèdent pas de ruby, vous pouvez télécharger un binaire pré-construit à partir de GitHub mais pour exécuter terminal-notifier vous devez le pointer vers le binaire dans le paquet de l'application comme suit:

./terminal-notifier.app/Contents/MacOS/terminal-notifier

Si vous utilisez cette dernière option, il est préférable de créer un alias dans bash_profile. Dans le cadre de cet article, nous supposerons que vous l'avez installé via ruby.

Utilisation du notificateur de terminal pour publier dans le centre de notifications

Une fois installé, l'utilisation de la commande à son noyau le plus basique est la suivante:

terminal-notifier -message "Hello, this is my message" -title "Message Title"

Publier un message après la fin d'une commande est simple, ajoutez simplement terminal-notifier comme suit:

ping -c 5 yahoo.com && terminal-notifier -message "Finished pinging yahoo" -title "ping"

Ceux-ci publient une notification non interactive, mais en creusant plus profondément, vous pouvez lancer des applications, exécuter des commandes de terminal et ouvrir des URL aussi.

Rendre les notifications interactives: ouverture d'URL, d'applications et exécution de commandes de terminal

Mieux encore, les commandes -open et -activate vous permettent de spécifier une URL ou une application à activer lorsque vous cliquez sur la notification. Par exemple, ceci ouvrira osxdaily.com quand on cliquera dessus:

terminal-notifier -message "Go to OSXDaily.com, it's the best website ever!" -title "osxdaily.com" -open http://osxdaily.com

Les notifications sont envoyées au Centre de notifications et, si vous cliquez dessus, il ouvre osxdaily.com dans le navigateur Web par défaut.

L'exemple suivant ouvrira TextEdit si vous cliquez sur la notification:

terminal-notifier -message "Time to braindump into TextEdit" -title "Braindump" -activate com.apple.TextEdit

Vous pouvez également exécuter des commandes de terminal si la notification interagit avec:

terminal-notifier -message "Time to run your backups" -title "Backup Script" -execute backupscript

C'est juste quelques exemples, mais il y a évidemment des utilisations infinies pour une telle chose. Considérant combien cela est utile, je suis surpris qu'Apple n'ait pas inclus un moyen de le faire dans OS X, bien que cela puisse changer un jour. En attendant, profitez d'un terminal notifiant, c'est un excellent outil.