Control PipeWire volume from the terminal (wpctl)
Set, raise, lower or mute the default audio output on PipeWire-based systems with wpctl.
Run wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.6 for 60% volume (use 0.6+ or 0.6- to adjust) and wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle to mute.
01Command
Command
$ wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.6 && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle02What it does
Modern distributions ship PipeWire, whose session manager WirePlumber is controlled with wpctl — the replacement for pactl. Volumes are 0.0–1.0 (1.5 overdrives if supported), and wpctl status lists every sink, source and stream with its ID so you can target a specific app or headphones instead of the default device. Add -l 1.0 to cap the maximum so accidental boosts stay sane.
03Risk
!Warning: If wpctl says 'no such object', PipeWire/WirePlumber is not running — check systemctl --user status pipewire wireplumber. pactl commands may still work via pipewire-pulse, but wpctl is the native tool. Mute state is per-device; unmute after switching outputs.
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- wpctl(1) - a simple command line control for WirePlumberEvidence: wpctl set-volume takes a volume between 0.0 and 1.0, supports +/− increments and -l limits; set-mute toggles or sets mute state.
- WirePlumber documentationEvidence: WirePlumber is the session manager for PipeWire; wpctl is its command-line client for inspecting and controlling audio devices.
Last verified: 2026-09-18 · Category: Media