Skip to content

feat: gracefully swap ALSA hardware profiles on single-sink unified chips systems#5317

Open
jamerrq wants to merge 1 commit intobasecamp:devfrom
jamerrq:feat/audio-alsa-profiles
Open

feat: gracefully swap ALSA hardware profiles on single-sink unified chips systems#5317
jamerrq wants to merge 1 commit intobasecamp:devfrom
jamerrq:feat/audio-alsa-profiles

Conversation

@jamerrq
Copy link
Copy Markdown
Contributor

@jamerrq jamerrq commented Apr 16, 2026

Description

On systems with unified audio cards (like the HDA Intel PCH), the HDMI output and the Analog (Headphones) output are mutually exclusive ALSA profiles. Because of this, only a single sink is ever exposed to PipeWire/PulseAudio at any given time. As a result, the default omarchy-cmd-audio-switch script incorrectly fails with "No audio devices found" instead of allowing the user to switch to the unplugged/inactive profile port.

Changes:

  1. Modified omarchy-cmd-audio-switch to add fallback ALSA card profile logic:
    If only 1 sink is available and it belongs to a card currently in analog-stereo or hdmi-stereo mode, gracefully command pactl set-card-profile to forcefully switch to the other one.
  2. Added an intelligent media auto-resume via playerctl (play / status):
    Changing ALSA profiles destroys and recreates the audio nodes in PipeWire/WirePlumber behind the scenes. This drop-off causes apps (like Media players and Browsers) to hard-pause playback as a safety measure. The script now records playback state before switching profiles, sleeps briefly to let the soundcard re-initialize, and re-triggers playerctl play to unpause the stream seamlessly.

…systems

When only a single audio sink is detected, this adds fallback logic to attempt swapping the ALSA card profile between Analog and HDMI. This gracefully handles logic on hardware with unified chips that mutually exclude ports in PipeWire/PulseAudio.

Additionally, automatically pause and resume playback via playerctl around profile swaps, since rebuilding the audio node tree briefly causes media players to pause out of safety.
Copilot AI review requested due to automatic review settings April 16, 2026 01:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants