This is caused by node suspension when inactive. It can be disabled by editing /etc/pipewire/media-session.d/*-monitor.conf depending on where the delay occurs and changing property session.suspend-timeout-seconds to 0 to disable or to experiment with other values and see what works. Alternatively you can comment out the line suspend-node in /etc/pipewire/media-session.d/media-session.conf. Restart both the pipewire and pipewire-pulse systemd services to apply these changes, or alternatively reboot.
My problem, as per the title, is that these files are not in /etc/ or even in /usr/share/pipewire/media-session.d
I have seached through the .conf files in /usr/share/pipewire but was unable to find anything matching what the wiki refers to.
Did you try creating the files and entering the lines as advised (then restarting the service(s) or rebooting)?
Can always remove them again if it doesn't work. Not too uncommon for standard settings to be within the software and only overridden when config files exist, for the settings defined within.
Damnit I'd even glanced at those and dismissed.
An alternative to commenting out the line, could extend the timeout from 3 seconds by editing the entry @ line 32 (on mine)
-- honor "session.suspend-timeout-seconds" if specified
local timeout =
tonumber(node.properties["session.suspend-timeout-seconds"]) or 3
in /usr/share/wireplumber/scripts/suspend-node.lua
to desired length of time (I've just edited 3 to 300 for 5 minutes).
The reason you might want to maintain a timeout is to allow connected equipment to enter sleep-mode, potentially saving power and/or reducing any static that might occur.
Thanks for sharing Demonic, that had been a minor irritation for me.