Existe-t-il un moyen d'afficher un badge sur l'icône du terminal dans le Dock à la fin d'une commande?

11

J'ai actuellement une application AppleScript qui ouvre les fenêtres du terminal et exécute les commandes. Je souhaite qu'un badge d'icône d'application apparaisse sur l'icône du terminal dans le Dock lorsqu'une commande se termine. J'en ai besoin car je dois souvent redémarrer les commandes lorsqu'elles s'arrêtent. Est-ce possible? Essentiellement, mon application AppleScript prend une variable fournie par l'utilisateur et la branche à une commande Terminal. Chaque fois que j'utilise l'application, elle ouvre une nouvelle fenêtre de terminal (prévue). J'aimerais qu'un badge apparaisse à la fin d'une commande de terminal.

Eli Greenberg
la source
Avez-vous besoin d'un badge, ou seriez-vous satisfait de la saycommande vous alertant verbalement, d'un bip, d'une notification de grognement, du changement de couleur du terminal ou de quelque chose d'autre?
N'importe quel moyen pour moi de dire qu'une commande s'est terminée. Les fenêtres du terminal sont toujours derrière toutes mes autres fenêtres, donc c'est ennuyeux de continuer à vérifier. Je préférerais une notification qui reste jusqu'à ce que je fasse quelque chose. Donc, une notification verbale ne fonctionnerait probablement pas si je me levais et que je n'étais pas là. Droite?
Eli Greenberg
Prenez les solutions ci-dessous (elles seront probablement basées sur Growl) et ajoutez une ligne AppleScript pour mettre la fenêtre actuelle au premier plan. Malheureusement, tous les terminaux se déplaceront vers l'avant (je pense), mais la fenêtre qui a déclenché l'événement sera devant tous ceux-ci.
Notez que iTerm2 a triggersce qui pourrait rendre cette configuration très simple et élégante: iterm2.com/triggers.html

Réponses:

14

Depuis Mac OS X 10.7 Lion, Terminal a exactement cette fonctionnalité.

Si vous émettez une cloche (BEL, Control-G) dans un onglet ou une fenêtre d'arrière-plan, l'icône Dock de l'application Terminal affiche un badge avec le nombre de cloches «non lues»

Badge indicateur Bell dans l'icône de l'application Terminal Terminal

et une icône de cloche est affichée dans l'onglet du terminal

Indicateur de sonnerie dans l'onglet du terminal

(S'il n'y a qu'un seul onglet dans la fenêtre, choisissez Affichage> Afficher la barre d'onglets pour voir l'onglet, qui affiche également d'autres informations d'état.)

Cela s'applique également aux fenêtres réduites.

Lorsque vous amenez la fenêtre à l'avant ou sélectionnez l'onglet d'arrière-plan, l'indicateur de cloche est supprimé de l'onglet et le nombre de badges diminue.

Chris Page
la source
Bien sûr, ce n'est que Lion, haha.
Eli Greenberg
3

Si vous êtes prêt à accepter une réponse à la question plus générale "existe-t-il un moyen de m'alerter lorsque quelque chose se termine dans une fenêtre de terminal" alors la réponse est: oui.

Si vous exécutez Growl, vous pouvez effectuer un appel en ligne de commande à partir d'un script qui publiera une notification sur Growl. Par exemple:

do shell script "sleep 1h"
do shell script "growlnotify --sticky --message \"I'm all done sleeping for an hour! Did you forget about me?\" --wait"

Le script ne se fermera pas tant que vous n'aurez pas effacé la notification de l'écran.

Vous pouvez même utiliser l' --nameoption pour donner à votre script un nom unique, puis depuis Growl personnaliser la façon dont les événements générés par cette application nommée sont affichés et traités. Ils peuvent produire différents types de fenêtres pop-up à l'écran, ils peuvent vous envoyer un e-mail, ils peuvent vous envoyer un message via iChat, ils transfèrent l'événement à Growl sur une autre machine, si vous exécutez Prowl sur votre iDevice, ils peuvent même transférer la notification sur votre iDevice via des notifications push.

Pas tout à fait la réponse que vous cherchiez, mais j'espère qu'elle répond à vos besoins.

GrowlNotify en action


Ian C.
la source