Today is 2015 and Pulseaudio still doesn't have priopity queue, or at least prior sound device. Let me show what I mean: For example I have 3 audio sinks (same for sources): sn1; sn2 and sn3. (I have connected them at least once, Pulseaudio knows them and keeps their list at ~/.config/pulse/sinks.list for example). I turn on my PC, I have only sn1 connected, so it becomes default, then I connect sn2 and mark it manually as default. Now Pulseaudio knows that when sn1 is connected, sn2 is more preferable. Then I connect sn3 and mark it as default. Now sn3 has top priority. I disconnect sn3 and sn2 becomes default. Then I disconnect sn1, sn2 stays default. Then I connect sn3 and sn3 becomes default, cause it has top priority. Then I connect again sn1 and sn3 still default. It's ideal behavior for sinks and sources. There is other option - store only one, manually selected default sink/source (seems that something like this implemented in Windows 7). How it works: I boot PC with only sn1 connected, connect sn2, amke it default manually. And now everytime I connect sn2, it will always become default, whatever devices are connected. Why it should be implemented? Imagine gamer with USB headset. Each time he plugs it - he is to manually set it as default. module-switch-on-connect is bad workaround. For example it could be implemented as switch-on-default-sink and switch-on-default-source modules.
I agree it's annoying to switch devices manually. A simple solution would be to assign a priority to every sink/source and when a new device is connected Pulseaudio moves all streams to the device with the highest priority AND matching role.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/500.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.