System beep plays two different sounds since last update

When I originally installed Manjaro, the system beep (traditional X11 feature) did not work by default. So I added these lines to .config/pulse/default.pa:

load-sample-lazy bell-window-system /usr/share/sounds/freedesktop/stereo/bell.oga
load-module module-x11-bell

Since the last update, this sound file is still playing but some other sound is also playing at the exact same time. It happens in multiple applications. It seems like some alternate (non-pulse?) method of supporting the system bell has been added but I’m not sure where to look for this to configure or disable it. (Like the solution I put in place, it also does not respond to xset commands, FWIW.)

How about temporarily disabling what you did back then - comment it out?

Yes that “works”, but I don’t like to subscribe to the notion that computers are hopelessly complex and we’re at their mercy. I should be able to figure out what controls this new sound. Also, I like my sound better than the new one.

Of course - but that might just be a bit easier to find out when your modification,
which you made because there somehow was no sound,
isn’t there, at least temporarily.
Just my opinion - I do not have any event sounds playing ever …

Migrate PulseAudio · Wiki · PipeWire / pipewire · GitLab

module-x11-bell

This module is supported in pipewire-pulse so you can do:

pactl load-module module-x11-bell

This module is also available as a native module that you can load and configure by loading the module in context.modules. See module-x11-bell for more documentation.


PipeWire - ArchWiki
WirePlumber - ArchWiki
Gitlab - PipeWire > Wiki > Home

1 Like

Thanks, this was useful. So the new configuration that’s relevant is in /usr/share/pipewire/pipewire.conf. However, I’m not yet clear on the proper way to override this in a local config. Sure I can just edit the system value. But it seems like the proper way would be with something in ~/.config/pipewire/pipewire.conf.d/*, but it isn’t clear to me yet if adding stuff here overrides or adds to the existing configuration. The man page for pipewire.conf says " Dictionary sections are merged, overriding properties if they already existed, and array sections are appended to." But the modules that are added are in an array. So if I do a section with the same module, does that module get appended and run twice, or do the module definitions get merged with the original module?

Also confused about how pipewire is run (and restarted)? The process is definitely running, but systemctl list-unit-files shows no such systemd-controlled service. I don’t want to have to reboot to test every change I try.

OK, systemctl does work to restart, I just forgot that this would be running in the user space, so I needed the --user option. I’ve tried to modify the behavior with a copy of the configuration for the libpipewire-module-x11-bell from the system pipeline.conf put into ~/.config/pipewire/pipewire.conf.d/xbell.conf, but with the sample.name line uncommented. And I used pact upload-sample to set the sound of the same name to the desired sound file. And restarted. But I keep getting the default sound that is configured (which is not specifically defined anywhere in the config files that I can find, it seems to be a built-in default).

PC speaker - ArchWiki

Some “default” event sounds were enabled in, I think, the update to Plasma6 some months back. You should be able to get at those in System Settings?

1 Like

You can select themes in Global Theme / System Sounds. You can’t set individual sounds in Settings though. But you can preview the sounds from each them, and what is interesting is that after I have used pactl on the command line to upload a sound and name it “bell-window-system”, then previewing the bell sound in all themes results in playing the sound I’ve set. BUT the actual notification sound being used (e.g for terminal beep) is still the default from before I set “bell-window-system” with pactl.

1 Like

The pipewire documentation for the x11-bell module specifies that the default value for sample.name is “bell-window-system”. And I had loaded my desired soundfile using pactl with that cache name but it wasn’t playing. I looked at the output of “pactl list” and noticed that the ocean theme bell oga sound file that I am hearing as the x11 bell was loaded as a sample with a cache name of “bell”. So I tried uploading my desired sound file using pactl with the name “bell”, and it worked. The default system beep was immediately replaced with my custom sound.

pactl upload-sample /path/to/sound/file bell

There’s some weirdness about the pact list output. It doesn’t always tell you what the filename is that was uploaded into a given cache name. So originally it told me what the system installed file named “bell” was, but after I ran the above command it no longer had the media.filename entry for the sample named bell. But the details changed so that it did match the new file.

At any rate, I think a solution (but not necessarily the “right” solution in terms of how this is intended to work) might be to use ~/.config/pulse/default.pa to define the bell soundfile as the desired soundfile, like this:

load-sample-lazy bell /home/fine/sounds/Tink.aiff

But I haven’t tested this yet to be sure. At any rate, the bones of an answer on how to specify your own custom system beep sound are here.

1 Like