8

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?

Chris Page
  • 3,277
  • 1
  • 27
  • 41
tony_sid
  • 14,001
  • 51
  • 139
  • 194

3 Answers3

12

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.

Chris Page
  • 3,277
  • 1
  • 27
  • 41
4

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
Dennis Williamson
  • 106,229
  • 19
  • 167
  • 187
  • 3
    I'd just like to point out that, as mentioned in another answer, Terminal does this out of the box, no extra installs necessary, as of OS X 10.7 ("Lion"). – ArtOfWarfare Sep 24 '13 at 18:22
4

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.

Rjak
  • 231
  • 2
  • 6
  • Bounces OK for me here with `sleep 2; echo -n '\a';` FWIW :) – rogerdpack Sep 01 '21 at 17:26
  • Pro-Tip: Prefer using `printf` instead of `echo` to write control characters. The `-n` flag is not defined by POSIX. I think `printf` is usually simpler to use for control characters, as well. In fact, POSIX says, “If the first operand is -n, or if any of the operands contain a character, the results are implementation-defined.” – Chris Page Sep 02 '21 at 20:21