Where did the sound go? Speakers, monitors, and Bluetooth headsets
Read outputs, inputs, application streams, and Bluetooth state to locate missing audio and restore your original settings.
Based on public documentation; not hardware-tested. Match the instructions to your version and hardware.
Two teaching scenarios guide this page: connecting a monitor stops music from the laptop speakers, and a Bluetooth headset plays music but nobody hears you in a call. Learn to separate defaults, active applications, mute, and input selection before restarting every audio service.
Names, IDs, and outputs are illustrative, not tested on your hardware. Record original devices, volumes, mute state, and Bluetooth profile for undo. Do not restart services during calls or recordings.
1. How audio components cooperate
Section titled “1. How audio components cooperate”Applications submit audio to PipeWire. WirePlumber’s policy manages automatic connections and device selection; hardware or Bluetooth carries it to speakers or headphones. WirePlumber manages connections, rather than acting as another audio player in series.
Application stream → PipeWire audio connections → Output node (sink) → Built-in/USB/monitor hardware → Or Bluetooth audio device
Microphone → Input node (source) → PipeWire connections → Recording/calling app ↑ WirePlumber manages devices, routes, and defaults ↑| Component or concept | Responsibility |
|---|---|
| PipeWire | Media nodes and data streams |
| WirePlumber | Device management, connections, session policy |
| BlueZ | Bluetooth connections; media integration is still required |
| Sink | Playback output, such as speakers or headphones |
| Source | Recording input, such as a microphone |
| Stream | An app’s current playback or recording |
Pairing does not select audio output, and hearing playback does not prove the mic works. Media layer · Networking and Bluetooth layer
2. Compare the same audio clip
Section titled “2. Compare the same audio clip”Use a familiar short clip at moderate volume. Compare two apps, then built-in speakers and headphones, changing one condition at a time.
| Symptom | First check |
|---|---|
| One silent app | App volume, mute, chosen output, actual stream |
| All apps silent but devices listed | Default output, device volume, connections |
| Silence after attaching a monitor | HDMI/DP output selection |
| Headphones play but mic fails | Input, permissions, Bluetooth profile |
| Every output missing | Media services and detection, not just volume |
This avoids treating a paused player or an app selecting another device as system failure.
3. Read status before copying IDs
Section titled “3. Read status before copying IDs”Query as your own user in the graphical session:
wpctl statusSimplified teaching output, not a full result:
Audio Sinks: 51. Built-in Audio Analog Stereo [vol: 0.45] * 52. External Monitor HDMI [vol: 0.60] Sources: * 66. Built-in Audio Microphone [vol: 0.75] Streams: 80. Browser audioA star under Sinks marks the default playback target; one under Sources marks the default recording target. They are independent. 0.45 means 45% volume; MUTED indicates mute. Actual output includes more nodes and connections and can vary by version.
IDs such as 51, 52, and 66 identify session objects, not permanent hardware. Reconnection, service restart, or login may change them. Query fresh output each time and identify targets by name. wpctl manual
Use sink/source node IDs when selecting playback/capture defaults, not arbitrary IDs from Devices. Inspect a node to confirm it:
wpctl inspect 51Substitute a current ID and inspect description, name, and media type.
4. Scenario: audio went to the monitor
Section titled “4. Scenario: audio went to the monitor”Open the top-bar volume popup, select built-in speakers, and inspect system and application volume. The official panel offers output selection and per-app volume. Omarchy audio entry point
For a terminal change, record the original output name and identify the current built-in sink. Only if its current ID is 51:
wpctl set-default 51Query wpctl status; expect the default star on the speakers. Defaults primarily choose targets for new streams needing automatic connection. Existing playback or apps with explicit devices may not immediately follow. Pause and replay, restart the app after saving work if needed, or select its output explicitly.
If still silent, query the chosen node:
wpctl get-volume 51Only if muted, unmute it:
wpctl set-mute 51 0If volume is zero or unsuitable, record the original and choose a low test level:
wpctl set-volume 51 30%Replay after each change. Changing default, mute, volume, and restarting together hides which step helped.
Success: actual speaker playback, no unintended monitor routing, and normal playback when started again. A correctly routed, unmuted stream without physical sound calls for checking connections, hardware controls, and device support.
5. Bluetooth: pairing, connection, and audio nodes
Section titled “5. Bluetooth: pairing, connection, and audio nodes”In the Bluetooth panel confirm pairing, then a current connection. Check for the matching headset output in wpctl status. A pairing record without an active connection does not supply usable audio.
| Bluetooth and audio state | First investigation |
|---|---|
| Paired, disconnected | Power, other connected devices, Bluetooth connection |
| Connected, no matching sink | Bluetooth media integration, current session, services |
| Sink present but not selected | Output selection, then application stream |
| Output present, expected input missing | Device capabilities and active profile |
Compare built-in speakers when possible. If only Bluetooth fails, focus on its path rather than changing all audio configuration.
6. Why does microphone use change music quality?
Section titled “6. Why does microphone use change music quality?”Classic Bluetooth headsets commonly use A2DP for music and HFP/HSP for microphone calls. Activating the headset mic may switch profiles and change quality or bandwidth. Devices and codecs differ, and LE Audio requires checking actual support.
Record the profile, then compare music playback with selecting the headset mic in a call. If quality changes, check for a profile switch before concluding the headset is damaged. Bluetooth configuration · Automatic switching policy
For playback quality, test headphones plus a laptop or USB mic, explicitly selecting both devices in the calling app and observing whether switching still occurs. Change just the input choice and retain the original profile for undo. Disabling every call profile to preserve music can remove headset microphone capability.
7. Test the microphone independently
Section titled “7. Test the microphone independently”wpctl get-volume @DEFAULT_SOURCE@This queries the default recording node, not speakers. If muted and you intend to record, unmute input:
wpctl set-mute @DEFAULT_SOURCE@ 0Use an app’s mic test or local recording function, verify the input name and permission, record a few seconds, and play it back. Playback needs a verified output; an inaudible recording can still be an output problem.
| Result | Investigation |
|---|---|
| Local recording works, call does not | Application device, permissions, call settings |
| Source exists but recording silent | Hardware mute, volume, wrong source, connection |
| Headset source absent | Profile and device capability |
| Browser site cannot record | Browser and site permissions, not just defaults |
Unmute only when recording is intended and restore the original mute state afterward. System defaults and explicit application choices remain separate.
8. Services and restoration: check this layer last
Section titled “8. Services and restoration: check this layer last”If wpctl status cannot connect or all nodes disappear:
systemctl --user status pipewire pipewire-pulse wireplumber --no-pagerjournalctl --user -b -u pipewire -u wireplumber --since "10 minutes ago" --no-pagerRun inside your own graphical session; do not query another user’s media session with sudo. Compatibility services may be socket-activated on demand; temporary inactivity alone is not proof of failure. Combine it with actual requests, errors, and wpctl results.
For recently working devices, finish calls and recording, then try Update → Hardware → Audio. Try Bluetooth when its connection is the failing path. Restart one subsystem at a time, fetch current IDs, and replay the same clip. Official hardware troubleshooting
Undo by finding original devices by their current names and restoring selection, volume, mute, and profile in the panel; command changes also need current IDs. Restoring one explicitly chosen default differs from restoring automatic selection. Follow the installed WirePlumber version’s instructions for the latter rather than deleting all state.
Report hardware, connection type, app, preceding action, comparisons, and relevant nodes. Completion means playback and recording both pass after reopening apps, with no unintended unmute or experiment settings left behind.
Sources and scope
Section titled “Sources and scope”Reviewed on 2026-10-12: Omarchy troubleshooting, WirePlumber getting started, wpctl, Bluetooth, and session settings. Confirm local menus and names; examples do not establish every headset’s capabilities.