Internal audio profile keeps changing or disabling after pausing playback — need stable duplex profile

I’m on Manjaro Linux (XFCE) and I’m having issues with my internal audio device (HDA Intel PCH).

Whenever I pause or stop audio playback (for example in a browser or media player), PulseAudio automatically changes or disables the active profile.
After that, I lose sound output completely until I manually reset the profile.


What I’ve tried

I wrote a small script in my ~/.bashrc that restores the sound:
pactl set-card-profile alsa_card.pci-0000_00_1f.3 output:analog-stereo+input:analog-stereo
pactl set-card-profile alsa_card.pci-0000_00_1f.3 output:analog-stereo
This works, but I have to run it every time audio playback is paused or switches between apps — which is far from ideal.

Output of pactl list cards short:
0 alsa_card.pci-0000_00_1f.3 module-alsa-card.c

Relevant section of pactl list cards:
Active Profile: output:analog-stereo
Available profiles:
output:analog-stereo
output:analog-stereo+input:analog-stereo
(others…)

Question

Is there a way to:

  • Prevent PulseAudio from automatically switching or disabling profiles?

  • Permanently keep the duplex or analog stereo output profile active?

  • Or configure a persistent default using default.pa, daemon.conf, or udev rules — instead of manually running a script every time?

Any guidance or configuration tips would be appreciated :folded_hands:

$inxi -Faz | grep -A1 Audio

Audio:Device-1: Intel vendor: Gigabyte driver: snd_hda_intel v: kernel

Server-3: PulseAudio v: 17.0-43-g3e2bb status: activewith: pulseaudio-alsa type: plugin tools: pacat,pactl,pavucontrol

pipewire output:
[E][21:00:58.937469] mod.protocol-native | [module-protocol-: 803 lock_socket()] server 0x55e4cef45de0: unable to lock lockfile ‘/run/user/1000/pipewire-0.lock’: Resource temporarily unavailable (maybe another daemon is running)
[E][21:00:58.937862] pw.conf | [ conf.c: 602 load_module()] 0x55e4cef26bf0: could not load mandatory module “libpipewire-module-protocol-native”: Resource temporarily unavailable
[E][21:00:58.939588] default | [ pipewire.c: 124 main()] failed to create context: Resource temporarily unavailable

this happens on youtube when the audio is broken

well, after watching a video from Unfa on YouTube I decided to ditch pulseaudio and welcome PipeWire , so I uninstalled everything that was related to pulseaudio, (except for a library 32 that was a dependency for other thing). And that was it, after a reboot: videos, games , etc. everything worked again, no bash function involved. It went smooth like silk, the only problem tho, was that I don’t have a volume control anymore in the bar at the bottom right of the screen, I can change volume with alsamixer on the terminal, which I made an alias so I can change it faster.

1 Like

PulseAudio Volume Control > Configuration tab (pavucontrol –tab=5) has a button to lock the card profile, but the profile lock is only available for pulseaudio not pipewire-pulse

PulseAudio default.pa can be customised to replace module-udev-detect (to automatically detect all available cards) with module-alsa-sink and module-alsa-source to load ALSA outputs and inputs discretely
pipewire-pulse uses wireplumber instead of module-udev-detect, but it does support use of module-alsa-sink and module-alsa-source

For any system with or without a software audio server, unused ALSA outputs and inputs can be disabled using hdajackretask tool (included in alsa-tools)

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.