Comment puis-je faire en sorte que le terminal iTerm m’informe lorsqu’un travail / processus est terminé?

Une notification du centre de notification serait idéale, mais le grognement, le rebond, le son, etc. seraient également corrects (ou si cela ne peut être fait que dans Terminal.app, je serais prêt à revenir en arrière). Existe-t-il une option quelque part dans iTerm pour activer les notifications ou est-ce quelque chose que je suis supposé taper à la fin d’une commande dans le terminal? Si c’est le cas, est-il possible d’append une alerte une fois que le processus a démarré (par exemple, si je me rends compte que cela va prendre plus de temps que prévu, je suis mal à deviner).

Notifier sur un processus en cours d’exécution

Raccourci: A ou:

Edit -> Marks and Annotations -> Alerts -> Alert on next mark

Oeil effrayant! : iTerm gardera littéralement un œil (en haut à droite) de votre terminal. Une fois la commande terminée, il contactera le Notification Center .

Pourquoi?

Nous avons déjà lancé la commande. Nous avons sous-estimé le temps nécessaire à l’achèvement, nous ne voulons pas l’annuler et nous refusons de nous asseoir et de le regarder. Par exemple, une brew update à brew update après un long moment!

Exigences

iTerm: Intégration Shell:

iTerm2 -> Install Shell Integration

Notez que l’intégration ne montrera pas les notifications jusqu’à ce que iTerm2 soit redémarré.

Vous pouvez append l’un des éléments suivants après une commande, avec un point-virgule entre la commande et:

 afplay /System/Library/Sounds/Ping.aiff -v 2 osascript -e 'beep 3' tput bel 

ou, si vous aimez Notification Center

 osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"' 

Vous pouvez également créer un alias dans votre profil, appelé notify et l’append à la fin de votre commande. Donc, dans votre profil de connexion

 alias notify="tput bel" 

puis

 sleep 10; notify 

Ou, si vous avez démarré votre commande et que celle-ci est “en attente”, tapez simplement notify et appuyez sur Enter pour lancer l’alias de notify à la fin, par exemple lorsque la commande est terminée.

 sleep 20 # wait 5 seconds before realising this will take 20 seconds notify 

Et vous pouvez toujours utiliser la commande say .

Habituellement, lorsque vous exécutez un long processus à l’intérieur du terminal et que vous souhaitez être mis à jour, vous pouvez simplement utiliser cette commande pour exprimer des choses comme done ou error ou bazinga .

 mvn clean install; say done 

Cette commande construit une application java spring, et prend beaucoup de temps, et elle s’exprimera une fois le processus terminé.

iTerm2 prend en charge les notifications Growl . Vous pouvez l’activer dans les parameters de chaque profil.

Sélectionnez un profil dans Preferences… -> Profiles . Ensuite, dans l’onglet Terminal il y a une option Enable Growl Notifications .

N’oubliez pas d’activer également les notifications iTerm dans les préférences Growl .

Si vous souhaitez recevoir une notification pour un processus donné, vous pouvez essayer de tester les Triggers . Vous définissez des déclencheurs dans Advanced onglet Advanced dans les parameters d’un profil. De cette façon, vous pouvez assigner une notification Growl à une sortie particulière de votre processus (regexp).

Vous pourriez par exemple faire:

 $ mycommand; echo "end-of-my-process" 

Et connectez le déclencheur au message “fin de processus”.

Mettre à jour

En savoir plus sur les déclencheurs sur iTerm2.com .

Il existe un outil OSS appelé noti .

Vous pouvez facilement l’installer avec brew install noti et commencer à l’utiliser en préfixant votre commande avec noti comme noti sleep 3 .