当需要用户输入时如何发出终端蜂鸣声?

当需要用户输入时如何发出终端蜂鸣声?

例如,我运行一个命令来更新我的系统,这需要一段时间。我希望在需要重新输入密码或确认某些内容时听到声音。我在 Arch 上使用 Zsh。谢谢你!

答案1

终端不知道应用程序何时读取输入,因此没有通用的解决方案。

如果应用程序在等待输入之前显示提示,并且您可以配置该提示,则添加响铃字符到这个提示。响铃字符是 Ctrl+G。在支持反斜杠转义的地方,可以写成\a.

例如,如果您希望在 sudo 提示符下响起铃声,请运行visudo并将以下行添加到sudoers文件中:

Defaults passprompt="␇[sudo] password for %p: "

使用实际的 Ctrl+G 字符代替(检查编辑器的配置以了解如何输入控制字符)。

响铃字符的效果取决于终端及其配置。许多终端可以创建诸如标题栏闪烁之类的效果。

答案2

有点横向,但你可以在 CPU 使用率较低时触发。您可能会得到一些误报,但最终您会发现一个只是坐在那里等待您输入的进程。

一种方法是使用batch安排一个只调用 的脚本echo -ne '\007',该脚本会播放终端铃声。batch当处理器负载低于预设值时将运行该脚本(_LOADAVG_MX在 BSD 上调用,但据我所知,在 Arch 上没有名称)。

要更改预设负载阈值,请参阅https://unix.stackexchange.com/a/306965/216323

相关内容