I Just Wanted It Louder (So Naturally I Lost All Sound First)
It started, as these things always do, with "the speakers are too quiet."
The Legion Go 2 has a gorgeous OLED, a quick little Ryzen Z2 Extreme, and speakers that sound like they are apologising for existing. Even pinned at 100% they are polite to a fault. So I did the obvious thing and went looking for a Decky plugin to turn them up.
I found DeckSP. A proper audio DSP, JamesDSP under the hood, EQ and compressor and the lot. I installed it, nudged the gain, and the Legion Go immediately produced a sound I had not asked for: none at all.
The silence
Not quiet. Silent. No game audio, no Steam UI clicks, nothing. The kind of problem that should take five minutes and instead eats your evening.
The maddening part: the hardware was fine. Playing a tone directly to the sound card worked perfectly. But anything going through the normal audio path - every app, every menu beep - hit a wall. A reboot did not fix it. It rebuilt the exact same broken setup, which is somehow worse than not fixing it.
The trail eventually led to the logs, where the same line was scrolling past on a loop:
wireplumber: link failed: 2 of 2 PipeWire links failed to activateSteamOS routes audio through a loopback layer on its way to the speakers. DeckSP's DSP had knocked that loopback into a state where it could no longer bridge to the hardware. Apps poured audio in; nothing came out the other side. DeckSP, it turns out, has an open bug for exactly this on the Legion Go. No fix.
The repair was to stop fighting it: disable the broken loopback layer entirely and let audio go straight to the speakers, which - as the direct test had already proven - work perfectly.
sudo mv /etc/wireplumber/wireplumber.conf.d/alsa-loopback.conf{,.disabled}Sound came back. I had spent an hour getting back to where I started. The speakers were, once again, too quiet.
The actual problem
Here is the annoying truth about these handhelds: the hardware mixer is already maxed out. Master, Speaker, PCM - all sitting at 0 dB. There is no analogue headroom left. The only way to get louder than 100% is digital gain.
The naive approach is to just push the volume above 100% in software. Which works, briefly, until you discover that Steam's volume bar and the physical buttons are a fixed 0 to 100% control. Push past 100% and the bar pins at the top, the buttons stop behaving, and you cannot turn it down. I know this because I tried it, and then I tried explaining to myself why the volume rocker had stopped working.
The fix is a shift in where the gain lives. Instead of turning the volume past 100%, you add a small gain stage after Steam's volume control. Steam still owns a normal 0 to 100% device - the bar and buttons work exactly as before - and a fixed boost is applied downstream, on the way to the speakers, where Steam never sees it. Nothing to fight.
In PipeWire terms that is a tiny filter-chain: a virtual "Speakers (Boosted)" sink feeding a high-shelf gain into the real hardware. Steam plays into the boosted sink at a polite 0 to 100%; the speakers receive up to double the amplitude.
Speaker Boost
Because doing this once by hand is fine but doing it forever is not, I wrapped it in a Decky plugin. It gives you a slider in the Quick Access menu - 100% to 200% in 25% steps - that sets the gain live. The volume buttons keep working normally on top of it. It sets itself up on install (detecting your speaker hardware), tears it all down cleanly on uninstall, and survives reboots.
The slider scales exactly as you would hope: 200% is genuinely double the amplitude, 150% is one and a half times, and 100% is just "off." On the Go 2, somewhere around 175 to 200% is the sweet spot before digital gain starts to bite on loud content.
It is on GitHub here, with a prebuilt zip so you do not have to build anything:
github.com/beaglemoo/decky-speaker-boost
Fair warning: it has only been tested on my Legion Go 2 on SteamOS 3.9. It should work on other PipeWire-based SteamOS handhelds, but I make no promises, and I have personally demonstrated how spectacularly handheld audio can go wrong.
The lesson
If there is a moral here, it is that "make it louder" and "do not break the volume buttons" are the same requirement wearing two hats, and you only notice the second one after you have violated it. The boost belongs after the volume control, not inside it. Everything else was just me learning that the hard way, in silence.