我在 Debian Testing 上运行 KDE。
有时,在终端(Konsole)中运行的程序会触发“Bell in session Shell”形式的系统通知。
什么会触发这些通知?
注意:我不是在问如何禁用它们 - 我知道在 Konsole -> 设置 -> 配置通知中有一个选项可以禁用它们。我首先问的是哪种行为会触发它们,目的是修改一些触发它们的程序以使其不触发它们,或者在不同条件下触发它们。
答案1
我相信这就是 konsole 终端仿真器解释铃声的方式。
尝试在 bash 中运行
sleep 3 && echo -e "\a"
然后切换到另一个应用程序并等待 3 秒。
很多年前,当真实终端连接到大型计算机时,有一种称为“转义序列”的特殊协议来向此类终端发送命令。有改变颜色、移至新行或响铃的序列。第一批终端配备了真实铃声,以通知操作员某些长时间运行的任务已结束。
任何现代终端仿真器(konsole、xterm 或处于文本模式时的真实控制台)都只是模拟这样的终端,因此可以理解这样的序列。
env TERM
. 变量告知模拟终端的名称。一些库像ncurses
然后使用termcap
(或terminfo
) 文件来查找此终端上哪个序列用于什么。