How to make Terminal bounce its application Dock icon in OS X
In OS X, when a program wants attention, its Dock icon at the bottom will bounce up and down. In Terminal, sometimes I will run a long series of commands, like this:
a && b && c
I want to append a command at the end of this, that will make the Terminal icon bounce up and down to alert me when these commands have finished running. How can this be done?
Solution 1:
BounceTerm may be just what you're looking for. From the web page:
BounceTerm is a SIMBL plugin for Mac OS X's Terminal.app that makes the dock icon bounce when a bell or beep is triggered. This can be useful if you have a long-running process going on and you want to be notified when it's done (assuming it beeps, of course).
No configuration is necessary, just open the .dmg file, run Install, and restart Terminal.app. To uninstall, simply run Uninstall from the .dmg.
If you want to make sure the plugin's working, try running
while [ 1 ]; do echo -n '\a'; sleep 2; done
in your shell and focusing a window in another application. You should see Terminal.app's dock icon bounce every two seconds.
So for your scenario:
a && b && c && while [ 1 ]; do echo -n '\a'; sleep 2; done
Solution 2:
As of Mac OS X 10.7 Lion, Terminal bounces its application Dock icon in response to a BEL (Control-G) and a badge displays the number of “unread” bells until you view the relevant terminal(s)†. If the tab bar is visible, it also displays a bell icon in background tabs until you activate them.
† More specifically: it bounces the Dock icon if the Terminal application is in the background at the time the bell occurs, and it displays the bell count for windows and tabs that have not been activated since the bell (whether or not the application as a whole has been activated).
See also Terminal Beeps (output) and Growl.
Solution 3:
As others have pointed out, BounceTerm is no longer required.
However, for me, echo -n did not work. In order for my terminal to bounce, I needed echo -e.
Here is an example. Paste this in Terminal, then quickly Cmd-TAB away to give focus to a different application:
sleep 2; echo -e "\a"
You should hear a boop, your Terminal dock icon should bounce, and you should see a badge that counts the number of bells.