如何让终端在 OS X 中弹跳其应用程序 Dock 图标

ton*_*sid 8 terminal alert macos

在 OS X 中,当程序需要注意时,其底部的 Dock 图标会上下弹跳。在终端中,有时我会运行一长串命令,如下所示:

a && b && c

我想在此末尾附加一个命令,这将使终端图标在这些命令完成运行时上下弹跳以提醒我。如何才能做到这一点?

Chr*_*age 12

从 Mac OS X 10.7 Lion 开始,终端会弹回其应用程序 Dock 图标以响应 BEL (Control-G),并且徽章会显示“未读”铃声的数量,直到您查看相关终端†。如果选项卡栏可见,它还会在背景选项卡中显示一个铃铛图标,直到您激活它们。

† 更具体地说:如果终端应用程序在响铃发生时处于后台,它会弹回 Dock 图标,并显示响铃后尚未激活的窗口和选项卡的响铃计数(无论应用程序是否作为整个已被激活)。

另请参阅Terminal Beeps (output) 和 Growl

  • 您可以使用类似 `open -a Finder; 之类的东西来测试它。睡2; printf '\a'`。 (5认同)
  • `睡觉10; tput bel` 也能用 (4认同)

Den*_*son 4

BounceTerm可能正是您正在寻找的。从网页:

BounceTerm 是 Mac OS X 终端应用程序的 SIMBL 插件,可在触发铃声或蜂鸣声时使扩展坞图标弹起。如果您有一个长时间运行的进程,并且您希望在完成时收到通知(当然假设它会发出蜂鸣声),那么这会很有用。

无需配置,只需打开 .dmg 文件,运行 Install,然后重新启动 Terminal.app。要卸载,只需从 .dmg 运行卸载即可。

如果您想确保插件正常工作,请尝试运行

while [ 1 ]; do echo -n '\a'; sleep 2; done 
Run Code Online (Sandbox Code Playgroud)

在您的 shell 中并聚焦另一个应用程序中的窗口。您应该会看到 Terminal.app 的停靠栏图标每两秒就会弹出一次。

所以对于你的场景:

a && b && c && while [ 1 ]; do echo -n '\a'; sleep 2; done
Run Code Online (Sandbox Code Playgroud)

  • 我想指出的是,正如另一个答案中提到的,从 OS X 10.7(“Lion”)开始,终端开箱即用,无需额外安装。 (3认同)