我已经尝试解决这个问题一个多月了,但并没有真正成功。
我正在运行 Debian 测试 (crunchbang),发行版已尝试删除所有哔哔声/铃声/等等。
我曾尝试使用诸如fancybeepdaemon
、softbeep
等奇特的解决方案;但它们都已失去维护,并且无法编译。
我尝试启用该snd-pcsp
模块,并注释掉我能想到的每个铃声禁用实例(openbox 的自动启动);但仍然没有效果。
有谁知道我怎样才能取回终端铃声,或者在铃声响起时播放自定义声音(铃声指的是\a
转义序列)?
答案1
有几个地方可以关闭此功能,因此请检查是否所有地方都已打开。
- 确保 pcspkr 已加载或内置到您的内核(并且扬声器本身受支持;实际上,一些较新的机器并不支持该功能)
- 如果您使用 ALSA 或 PulseAudio,它们可能有 pcspeaker 作为混音控制;确保它的音量调高并且没有静音(我的笔记本电脑没有静音,但我的台式机有,所以 YMMV - aplay -L 和 Speaker-test 是您的好朋友)。
- 您的终端必须允许它(setterm blength 1;xset b on(如果适用);此外,如果您使用模拟器,它通常会在某处有铃声或蜂鸣声作为选项 - 我记得 compiz 曾经捕获铃声事件并将其转换为窗口颤动,例如)
- 你的 shell 可以抑制它们(例如 tcsh 有一组变量来确定何时响铃和不响铃;我认为 bash 更直接)。
答案2
好吧,经过半年的全新安装(deb 测试)之后,我找到了一个可行的解决方案!
我的解决方案是编辑/etc/pulse/default.pa
并添加两行:
load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga
load-module module-x11-bell sample=x11-bell
它使“子铃”的工作方式与在 Gnome 3 中一样,并使用相同的文件。
编辑于2016年7月4日:
最近对 pulseaudio 的更改已从 中删除这两行/etc/pulse/default.pa
,至少在 debian sid 上是如此。pactl
也可以使用 来设置它,此时您可以让 WM conf 执行设置。
pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga bell; pactl load-module module-x11-bell sample=bell;