Issues with Notification Volumes

Good morning! I am using a desktop PC with plasma 6.2.4 installed on Gentoo. I have a similar setup on a laptop which does not display this problem, but I am not sure why!

Anyway, the problem: I have a very loud notification volume, particularly when adjusting the volume using the statusbar volume control. Setting the notification volume to 0 or selecting the mute for notification volumes (under playback streams) makes no difference. Almost like the notification is outside of plasma’s control.

I would love to have suggestions as to where I can look for this, or how I could make changes to the settings to change to volume on this notification, or even better to get rid of it. I don’t need a notification feedback for something I am actively doing on the system!

Many for plasma and the associated software, and thanks in advance for your comments!

Open system settings, search for sound and try adjusting it there.

This is what I have in the system settings:

You can see the notification volume is muted globally.

Interest though: I opened the system settings to take this screenshot, and it was showing notifications sounds volume at 100%, so it is like this setting isn’t being saved. Maybe an ownership issue? I am not sure where the underlying configuration is saved. All the files under .config have the correct ownership/group for the user.

Hi - I suspect you’re getting that because the sound feedback when you adjust the volume isn’t thought of by the system as a “notification” alert, strictly speaking, but as just interactive feedback of how loud your new volume setting is going to sound through your speakers.

If you want to disable that feedback noise, you could head to System Settings > Sound > Configure Volume Controls:

And uncheck “Play audio feedback for changes to: Audio volume”:

Hope that helps,

Any thoughts on the below? Thanks

Not sure - I checked around the bugtracking system and the closest thing I saw that was an open issue was 428267 – Sounds made by notifications don't respect "Notifications" volume level in Audio Volume KCM , which isn’t exactly the same thing.

@paulj Are you unmuting when you try to change the sound, by chance?

This did indeed stop the notifications - Thank you very much!

However - my laptop has the same setting indicated, and the volume of the notification is responding to the “Notification Sound” volume changes, including when I mute them. Also, when I went into the sound settings to make the changes you suggest, the Notification Sound volume was again showing 100%.

I am marking it as a solution because it solves the problem I am facing, but I will continue to try to understand the differences between the desktop and laptop settings. One thought - the desktop has been upgraded to Plasma 6 from Plasma 5, but I think I installed Plasma 6 on the laptop directly. Maybe I should clean out the plasma .config directories, and start from scratch again in case there is some left over config file causing this problem?

@johnandmegh - The mute indicator is toggled when I click it, or when I drag the volume slider to or from 0. Is this what you mean with your question? When I change the volume with the volume control on the status bar, the “Notification Sound” volume or mute status does not change.

I will have a look through the open issue you found and see if there are similarities. Thanks for checking for me.

Yeah, basically I was wondering if somehow having mute toggled on was stopping volume changes on the slider (which would, theoretically, be in effect once unmuted) from registering, and if it would make a difference to unmute, then make the change, then mute again?

Either way, I’m glad the immediate case is at least taken care of - and yes, there still seem to be some underlying differences between the different places where audio settings can be adjusted (based on the last few comments in that bug report).

Your thought about a long-upgraded system is a good lead - especially since these types of settings concern underlying technologies that have likely changed since the original installation of that system as things progress (e.g. things like PulseAudio and Pipewire).

Testing on a live USB with recent, up-to-date software could help tease out if it’s a matter of legacy packages or config files possibly throwing things off, or if it’s also likely present in the current upstream versions plus your distribution’s current configurations and packaging?

TL;DR edit the notification sound files, it’s the only way.

You are not alone. It’s 100%, for us all (at least, on current versions). I had the volume change notifications disabled already, so it was Konsole’s bell, for me. A comfortable listening level for music or videos, was earbleed “boop” if I hit the wrong key. Looking into it, I saw a lot of comments about it (it’s not just us), but the only solution given, was that slider…

I’m guessing that the other system you have, where that works, is running pulseaudio (the real, olde-fashioned pulse, not pipewire-pulse)

It doesn’t seem to do anything at all, at least on pipewire systems. You can observe this by running pw-mon (which will show all pipewire events as they happen) and moving the slider (nothing happens). It’s been that way for quite some time (years), so I expect it’s intentional? Although I’m not sure why it’s shown at all if it isn’t doing anything, so maybe it is, but I sure don’t hear it… Perhaps the reason why it is not been made functional in KDE is because it wouldn’t really work anyway:

Even without this slider, you can achieve the same result for example by creating a rule in pipewire, to set the volumes for the notifications streams - but as you discovered above, many audio ‘notifications’ are not only from Plasma notifications - for example the terminal ‘beep’ from Konsole, or the volume change from the widget… Some apps (including plasma notifications) set appropriate metadata identifying the audio streams as playing a notification (so that rules could be written) but many do not. All of this would be the same on pulseaudio as it is for pipewire. Because there’s no way to know what sound is what, once they’re playing, you can’t practically catch them all.

To deal with this, I ended up modifying a few of my notification sound files, to have a lower volume, so that they weren’t so ear-piercing. It’s a sledgehammer approach, but it’s the most practical I’ve found so far. I’ve noticed that quite a few of the .ogg files in the stock (ocean, freedesktop, oxygen) sound themes, have lower volumes these days, so I guess that at least one person agrees with this approach :smiley: Perhaps you might find that changing or updating your sound theme is sufficient.

If you do decide to edit the files, you can use something like Kwave or audacity to edit them one-by-one, or ffmpeg if you need to do a batch or just prefer CLI. Be aware that package updates will replace the files if you edit the ones in your system directories (like /usr/share/sounds or whatever) so you may like to download a theme for your user (Get New Stuff) and edit that, or something that suits you, to not lose the changes. Also, consider not just simply reducing all of their volumes, but leaving the critical stuff as-is. Nobody needs a hushed alarm clock or critical error.

There are rarer examples where this won’t work out, like apps that generate their own notification sounds, web apps (discord comes to mind), etc. In most cases, I’ve been able to use their metadata to write a rule, but some just make no distinction between notifications and content, so there’s nothing we can do but file a FR/bug report about it… Or be like me and not file bugs, and write a long forum post about it in a couple of years :laughing:

Hope this helps.

Thanks for your input!

Actually, both systems are using pipewire, and the same plasma version (6.2.4). In pw-mon, I have the same condition you observe - on both systems, changes to the notification slider does not generate activity for pipewire.
On the laptop, the notification slider position is saved, and the volume level of the notification from the volume app does change in line with the slider. The “Play audio feedback for changes to: Audio volume” is selected.
On the desktop, the notification slider position doesn’t survive the Settings application being shutdown and restarted. The volume level of the notification for the volume app is not changing volume with the slider, and as you find is ear piercingly loud compared to the other “normal” level sounds. Unchecking the "Play audio feedback… " option takes the noise away - so I am quite happy to continue with the system like this.

I will be trying the system with another, new user account, to see if there is something which has been kept in the configuration files. I will also see what other differences there are between the two systems to see if I can identify the root cause for the different behaviour.

Christmas may delay my trials, but I will feedback here in due course!

Sorry I’m late, kinda forgot about this until I was cleaning up my files and found it.

This is derived from my pipewire config and should help. I updated my rules after this conversation and had more success. It catches just about everything for me, but you might need to alter it to suit your needs. Consider it a work-in-progress, but fully-functional.

TLDR what this does:

  • Creates a virtual sound card called ‘Notifications’ and you get a volume control for it, and can set hard-coded min/max volumes to override the volume control slider (here set to 60% max)
  • The output of the virtual sound card will automatically follow your selected audio device
  • Pipewire, pulse, and JACK client streams which match one of the criteria in the rules, will automatically play their sound into not the device you selected, but into this virtual device. (which then sets the volume and sends it out to the selected device, as above)

Yes, the formatting is weird, it’s for ease of editing, there’s method in my madness. Change it if you like.

I did test this without my usual config in place and it worked but if you have problems let me know.

File contents:
~/.config/pipewire/pipewire.conf.d/60-notifications-volume.conf

# Notifications volume
context.modules = [
    {   name = libpipewire-module-loopback args = {
            capture.props = {
                media.class = Audio/Sink
                media.name = "Notifications"
                node.name = "Notifications"
                node.nick = "Notifications"
                node.description = "Notifications"
                node.passive = true
                node.virtual = false # Special treatment to always show this in volume control
            }
            playback.props = {
                node.name = "Notifications"
                node.description = "Notifications"
                node.linger = true
                node.passive = true
                channelmix.disable  = true
                channelmix.min-volume = 0.0 # Alter these if required
                channelmix.max-volume = 0.60 # Volume will be clamped to these levels
            } } }
]

node.rules = [
    # System notifications
    { matches = [ { media.role = "Notification"
                } { application.id = "~org.kde.*"
                } { application.id = "org.freedesktop.libcanberra"
                } { application.name = "libcanberra"
                } { application.process.binary = "plasmashell"
                } { application.name = "~konsole"
    } ] actions = { update-props = {
        target.object = "Notifications"
    } } }
]
3 Likes

This bothered me as soon as I typed it… and in his usual psychic fashion, Wim made a new commit which updated some docs and gave me the hint to do this easily in a single file.

I hope I wasn’t too late to catch this and save you some effort :slight_smile:

1 Like

Thanks @pallaswept - I have implemented a setup as you have configured, and everything now seems to work as expected.

2 Likes

Awesome! Super glad to hear that it’s working for you.

If you have any problems with sounds that you wished were caught by this and aren’t, please do let me know. I’ll try to sort it out and update the rules in this thread for future travellers.

2 Likes