PulseAudio 14.0-1 doesn't automatically switch between speakers and headphones

According to this thread

PulseAudio 14.0-1 is supposed to solve the problem that output doesn’t automatically switch when headphones are plugged in. I have a fully up-to-date Manjaro system (I assume stable - how do I tell?) on a Dell Precision 5220, including a number of pulseaudio 14.0-1 packages

extra/pulseaudio 14.0-1 [installed]
extra/pulseaudio-alsa 1:1.2.2-2 [installed]
extra/pulseaudio-bluetooth 14.0-1 [installed]
extra/pulseaudio-equalizer 14.0-1 [installed]
extra/pulseaudio-jack 14.0-1 [installed]
extra/pulseaudio-lirc 14.0-1 [installed]
extra/pulseaudio-zeroconf 14.0-1 [installed]
community/pulseaudio-ctl 1.67-1 [installed]

When I plug in my earbugs (USB-C) I still have to manually switch outputs using the PulseAudio Volume Control widget. When it displays, it shows them as available, but the switch isn’t made. If I unplug them, they disappear (and output reverts to the speakers automatically).

Is there something I can do to remedy this problem or more input I can provide to help others figure out what’s going wrong?

1 Like

I don’t know why it doesn’t switch,but can you try this script

I never used it,but lt a service to automatically change the output in case the system doesn’t do it.

I suggest you get list of the PulseAudio Sinks (audio outputs)

pactl list short sinks | awk '{print $2}'

and then check PulseAudio setting for default sink

pacmd dump | grep default-sink

I suspect the default-sink is set to onboard audio and not the USB device

To change the default-sink use this command with the correct USB Sink [NAME] from first command

pacmd set-default-sink [NAME]

Problem still persists in newest Manjaro XFCE with 5.10 kernel and all updates.

How to reproduce:

  • Plug in HDMI device with audio (TV in my example)
  • Set it as default audio output in Pavucontrol GUI, everything is fine
  • Unplug HDMI cable - Pulseaudio automatically switches to other available audio output
  • Plug HDMI back - Pulseaudio doesn’t revert default sink back to HDMI

I can confirm that this works in Debian Stable with MATE DE (Pulseaudio sets HDMI back to default after HDMI is plugged back in). However, in Manjaro, as soon as we unplug the device, Pulseaudio immediately forgets that this was default output set manually.
Proposed solution by @nikgnomic doesn’t change anything, as this is just terminal way to change default sink.

Any idea where this bug can be reported? I’d like my Manjaro to remember my manual choice of preferred sink, just like Windows and Debian MATE does, it should be remembered.

pavucontrol only shows an option for Devices to be ‘Set as fallback’
PulseAudio will use fallback device if the default-sink is not available

If you cannot manage the terminal commands you can install pasystray to view or change the default sink in a GUI

Wanted to clarify: You commands from earlier post “pacmd” don’t work, they just set default sink just like pavucontrol does. When default sink is disconnected, pulseaudio forgets everything. Meddling with more terminal commands it’s opposite to what XFCE default experience should provide. This should work.

I repeat my question, where do I report this bug to Manjaro devs? Is there a bugtracker?
Ubuntu, Debian and Windows have this sorted out, Manjaro must too - this supposed to be by default.

I have XFCE too, and this behavior annoys me. However, on GNOME this issue does not occur, so it’s up to the XFCE developers to change it.

2 Likes

Where this can be reported? Manjaro doesn’t have any system in place to report bugs to devs at all?

The default-sink should be saved to user’s home folder

cat ~/.config/pulse/*-default-sink

(wildcard * is needed for the PulseAudio cookie number in the filename)

So an Xfce user could navigate to the file in Thunar and edit the file to add the preferred sink name instead of using a pacmd command

I had a similar problem but with the bluetooth speaker. I managed to solve it. I edited file default.pa in /etc/pulse. In section called "### Automatically load driver modules for Bluetooth hardware", there are two lines here:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover

I added this:

load-module module-switch-on-connect

Now the default speaker switches to bluetooth when it is connected. You can try adding this line somewhere at the end of the file to work globally, not only for Bluetooth.