Output sinks ordering
- PipeWire version (
pipewire --version
): 0.3.51 - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Arch Linux - Desktop Environment: None (X11 + dwm)
- Kernel version (
uname -r
): 5.17.9-arch1-1
Description of Problem:
Hello,
I have a problem that pipewire (wireplumber? x11? something?) is ordering audio outputs in non-deterministic way.
I have four outputs: "Tiger Lake-LP Smart Sound Technology Audio Controller Speaker + Headphones" and 3 times "Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort {1,2,3} Output"
The first one always points to laptop's built-in speakers. The next three point to different HDMI/DP outputs (one connected to TV, one to external monitor, one not connected at all) - and here is the problem, their order is random.
For example when I first boot up my computer "HDMI/DP 1 Output" will point to my TV (connected via HDMI), and "HDMI/DP 2 Output" will point to external monitor (connected via DP over Thunderbolt). Then after some time of inactivity my computer goes into sleep, and after I wake it up the outputs might switch places. Now "HDMI/DP 1 Output" points to monitor, and "HDMI/DP 2 Output" points to TV.
This is frustrating because then I have to open up pulsemixer and change default output sink and change volumes again and again - the volume I have set for TV is now set for monitor and vice versa.
I guess that this has something to do with a fact that pipewire does audio device discovery (?) and it gets responses in random order?
X11 (xrandr) always says that DP1 is my external monitor and HDMI1 is my TV. So xrandr is deterministic. pulsemixer is not.
Is there something that I can do about it? Can I somehow tell pipewire to order outputs in a deterministic way?
How Reproducible:
All the time
Steps to Reproduce:
- Connect TV via HDMI, and external monitor (with speakers) via DP to a laptop
- Boot up PC and note order of audio outputs
- Wait for PC to go to sleep
- Wake it up and note that order of audio outputs changed
Expected Results:
I would expect that pipewire should always assign the same audio output number to the same physical connector.
Additional Info (as attachments):
-
pw-dump > pw-dump.log
: pw-dump.log