i3 PipeWire Sound Checks on Arch
Check and fix sound in a minimal i3 session on Arch using PipeWire, WirePlumber, pipewire-pulse, and wpctl. This workflow focuses on the common case where sound appears broken because the default sink volume is muted or set to 0.00.
Check PipeWire status
Section titled “Check PipeWire status”On a fresh Arch install with PipeWire and WirePlumber running, sound can still appear broken when the default sink volume is simply at 0.00. Check status first before assuming anything is actually wrong.
wpctl statuswpctl get-volume @DEFAULT_AUDIO_SINK@Set default output volume
Section titled “Set default output volume”Set, raise, lower, or mute the default output device with wpctl.
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.5wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle- 0.5 means 50 percent volume.
- 5%+ raises volume by 5 percent.
- 5%- lowers volume by 5 percent.
- set-mute toggle toggles mute on the default output sink.
Start and enable audio services
Section titled “Start and enable audio services”If audio services are not running, start and enable PipeWire, WirePlumber, and pipewire-pulse for the user session.
systemctl --user status pipewiresystemctl --user status wireplumbersystemctl --user status pipewire-pulse
systemctl --user enable --now pipewire wireplumber pipewire-pulseOptional GUI mixer
Section titled “Optional GUI mixer”Install pavucontrol when a GUI mixer is useful for per-app volume, output device switching, and quick inspection.
sudo pacman -S pavucontrolpavucontrolDaily notes
Section titled “Daily notes”- Laptop Fn volume keys usually work out of the box with PipeWire.
- No extra i3 keybinding is needed if the hardware keys already work.
- If sound seems gone after login, check the sink volume first with wpctl get-volume.
- A reset to 0.00 is a common cause of silent audio.
Debug commands
Section titled “Debug commands”# Check audio graph and default deviceswpctl status
# Check default sink volumewpctl get-volume @DEFAULT_AUDIO_SINK@
# Check user servicessystemctl --user status pipewiresystemctl --user status wireplumbersystemctl --user status pipewire-pulse
# Check recent user service logsjournalctl --user -u pipewire -b --no-pager -n 100journalctl --user -u wireplumber -b --no-pager -n 100journalctl --user -u pipewire-pulse -b --no-pager -n 100File locations
Section titled “File locations”- PipeWire user service: pipewire.service
- WirePlumber user service: wireplumber.service
- Pulse compatibility user service: pipewire-pulse.service
- Main command-line tool: wpctl
- Optional GUI mixer: pavucontrol