Recent versions of iTerm support Growl notifications. iTerm shows how to initiate Growl events from the command line with:
The example shows how to get an alert after a long make. I know I would never remember that command so I wrote a little Bash user defined function to do the same. Add this to your .bashrc file:
Now the command to initiate a notification would be:
If this snippet is useful to you, please consider buying me a beer.
Popularity: 48% [?]
Alas, it does not work under GNU Screen
Would it have something to do with the terminal type?
From the manpage:
If you want more control or use a different terminal app, you may want to look at growlnotify:
http://growl.info/documentation/growlnotify.php
Works great, good tip. Now, I’m gonna have to figure out how to make growl notifications work for remote jobs.
If you substitue ${1} with ${*} in the shell function, you don’t need to put the notification text within quotes.
You should always quote when you use arguments, unless you have a very good reason not to. Bad things happen otherwise; mostly, newlines and tabs become spaces, globs get expanded, etc. Also, what’s with using echo -e and $’ ‘ at the same time?
Here’s a better way, IMO:
growl() { echo $’\e]9;’”${@}”$’07′ ; return ; }
Wow, so I messed that up a little bit.
That should read:
Also, be careful about the quotes. I’m not sure exactly why, but some of the quotes in my previous post got transformed to forward and backwards quotes, which will mess with things in the shell.
{
if [ "$TERM_PROGRAM" == "iTerm.app" -a "$TERM" != "screen" ]
then
echo -e $'\e]9;'${1}'07'
else
growlnotify -m ${1} "Alert"
fi
}