#387

Uninstalling Superwhisper with -Rns removes pipewire-pulse and breaks Mac host audio routing

OpenFail-Safeopened 3d ago

Summary

Uninstalling superwhisper-bin with pacman -Rns also removes pipewire-pulse. That leaves the guest with only QEMU's emulated HDA sink (Generic Analog), and breaks try-omarchy's native Mac audio bridge so Omarchy no longer follows macOS routing (AirPods, Mac System Default, etc.).

Environment

  • Host: MacBook (try-omarchy / QEMU guest)
  • Guest packages observed: try-omarchy 0.1.0-35, pipewire 1:1.6.9-1, wireplumber present, pipewire-pulse absent
  • omarchy-native-audio-bridge.service is enabled/running

Reproduction

  1. Fresh try-omarchy guest where pipewire-pulse is installed (it is on the guest package list / Omarchy install set).
  2. Install Superwhisper (superwhisper-bin), which depends on pipewire-pulse.
  3. Uninstall with recursive deps:
pacman -Rns --noconfirm superwhisper-bin
  1. Reopen the Omarchy Audio panel / check host-mirrored sinks.

Actual behavior

From /var/log/pacman.log:

[PACMAN] Running 'pacman -Rns --noconfirm superwhisper-bin'
[ALPM] removed superwhisper-bin (1.0.2-1)
[ALPM-SCRIPTLET] Removed '/etc/systemd/user/sockets.target.wants/pipewire-pulse.socket'.
[ALPM] removed pipewire-pulse (1:1.6.9-1)

After that:

  • wpctl still shows only the emulated card: Built-in Audio Analog Stereo (UI label Generic Analog)
  • AirPods / other macOS-selected outputs do not appear or get followed
  • omarchy-native-audio-bridge loops on:
omarchy-native-audio-bridge: pactl list short: Connection failure: Connection refused
pa_context_connect() failed: Connection refused

A later pacman -Syu does not restore pipewire-pulse.

Expected behavior

Removing Superwhisper should not disable Mac host audio mirroring. The Audio panel should keep exposing host endpoints such as Mac System Default (and specific Mac devices), so Omarchy follows the Mac's current route (e.g. AirPods).

Root cause

  1. superwhisper-bin depends on pipewire-pulse.
  2. pipewire-pulse is only present as a dependency for Superwhisper (not held as an explicit install / hard dep of try-omarchy or omarchy-dev).
  3. pacman -Rns therefore treats it as an unneeded dependency and removes it.
  4. omarchy-native-audio-bridge requires the Pulse compatibility socket (pactl load-module / null sinks for Mac devices). Without pipewire-pulse, the bridge cannot publish host devices.
  5. The remaining Generic Analog path is QEMU HDA only and does not track macOS CoreAudio routing.

Relevant dependency gap today:

  • omarchy-dev depends on pipewire + wireplumber, but not pipewire-pulse
  • try-omarchy also does not hard-depend on pipewire-pulse
  • even though pipewire-pulse is listed in guest/Omarchy package sets (guest/packages.txt, Omarchy install package lists)

Suggested fix directions (for a later PR)

Any one (or combination) of:

  1. Hard-depend on pipewire-pulse from try-omarchy (and/or ensure Omarchy marks it explicit), so -Rns superwhisper-bin cannot remove it.
  2. Guest repair / update path that reinstalls missing packages from guest/packages.txt / the Omarchy required set (so a later update heals this).
  3. Document or wrap Superwhisper uninstall so it uses non-recursive remove (-R / -Rs carefully) and leaves shared audio infra alone.
  4. Longer-term: make the native audio bridge less dependent on pactl/pipewire-pulse (e.g. native PipeWire APIs), if desirable.

Workaround

sudo pacman -S pipewire-pulse
systemctl --user enable --now pipewire-pulse.service
systemctl --user restart omarchy-native-audio-bridge.service

Then select Mac System Default (or the specific Mac device) in the Omarchy Audio panel.

Notes

This is separate from leftover Audiogram EQ / WirePlumber filter nodes that can still appear after that plugin is removed. The AirPods / Mac-default routing failure is specifically the missing pipewire-pulse + broken native bridge.

Activity

0

No activity yet.