pactl(1)
โจ NAME โจ
pactl โ the little remote control for a running PulseAudio sound server ๐๏ธ๐
(Also hi, this is the pactl(1) page from the General Commands Manual, and yes we are gonna get through all of it together, bestie.)
๐ธ SYNOPSIS ๐ธ
pactl [options] COMMAND [ARGS ...]
pactl --help
pactl --version
๐ฆ DESCRIPTION ๐ฆ
Okay so real talk: pactl is how you slide into your PulseAudio sound server's DMs and tell it what to do. It issues control commands to it. That's the whole vibe. ๐
But here's the tea โ pactl only exposes a subset of everything the server can actually do. It's giving "curated menu, not the whole kitchen." If you want the full set of operations, you go use pacmd(1). No cap.
๐ OPTIONS ๐
-h|--helpโ show the help. Your bestie when you're lost. ๐ซถ--versionโ show version information. Slay, now you know what you're running. โญ-s|--server=SERVERโ pick which server you're connecting to.-f|--format=FORMATโ choose your output format, and the available options are"text"or"json". Pick your aesthetic. โจ-n|--client-name=NAMEโ specify the client name thatpactlis gonna pass along to the server when it connects. Like an intro card. ๐ชช
๐ COMMANDS ๐
Before we get into it: when you supply these as arguments to the commands below, there are three special names you can use โ @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@ โ which let you point at the default sink, the default source, and the default monitor respectively. Main character shortcuts, honestly. ๐
statโ dump a few statistics about the memory usage of the PulseAudio daemon.infoโ dump some info about the PulseAudio daemon.list [short] [TYPE]โ dump all the currently loaded modules, available sinks, sources, streams, etc.TYPEhas to be one of:modules,sinks,sources,sink-inputs,source-outputs,clients,samples,cards,message-handlers. If you don't specify one, all the info gets listed โ except themessage-handlers, they're excluded. And ifshortis given, the output comes out in a tabular format, which is perfect for easy parsing by scripts. ๐ฅexitโ asks the PulseAudio server to terminate. It's giving "you can go now, thank u next." ๐upload-sample FILENAME [NAME]โ upload a sound from the audio file you specify into the sample cache. The file types supported are the ones understood bylibsndfile. The sample in the cache gets named after the audio file, unless you explicitly specify the name. ๐play-sample NAME [SINK]โ play the specified sample from the sample cache. It plays on the default sink unless you specify the symbolic name or the numerical index of the sink you want it played on.remove-sample NAMEโ remove the specified sample from the sample cache. Bye bestie. ๐load-module NAME [ARGUMENTS ...]โ load the specified module, with the specified arguments, into the running sound server. It prints the numeric index of the module that was just loaded toSTDOUT, and you can use that to unload the module later. Save that number, iykyk. ๐งunload-module ID|NAMEโ unload the module instance identified by the specified numeric index, or unload all modules by the specified name.move-sink-input ID SINKโ move the specified playback stream (identified by its numerical index) over to the specified sink (identified by its symbolic name or numerical index).move-source-output ID SOURCEโ move the specified recording stream (identified by its numerical index) over to the specified source (identified by its symbolic name or numerical index).suspend-sink SINK true|falseโ suspend or resume the specified sink (which you can specify either by its symbolic name or its numerical index), depending on whethertrue(suspend) orfalse(resume) is passed as the last argument. Suspending a sink will pause all playback. Depending on the module implementing the sink, this might have the effect that the underlying device is closed โ which makes it available for other applications to use. The exact behaviour depends on the module, so don't @ me. ๐ญsuspend-source SOURCE true|falseโ suspend or resume the specified source (which you can specify either by its symbolic name or its numerical index), depending on whethertrue(suspend) orfalse(resume) is passed as the last argument. Suspending a source will pause all capturing. Depending on the module implementing the source, this might have the effect that the underlying device is closed โ making it available for other applications to use. The exact behaviour depends on the module.set-card-profile CARD PROFILEโ set the specified card (identified by its symbolic name or numerical index) to the specified profile (identified by its symbolic name).get-default-sinkโ returns the symbolic name of the default sink.set-default-sink SINKโ make the specified sink (identified by its symbolic name or numerical index) the default sink. Use the special name@NONE@to unset the user defined default sink โ this will make pulseaudio return to the default sink selection based on sink priority.set-sink-port SINK PORTโ set the specified sink (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).get-default-sourceโ returns the symbolic name of the default source.set-default-source SOURCEโ make the specified source (identified by its symbolic name or numerical index) the default source. Use the special name@NONE@to unset the user defined default source โ this will make pulseaudio return to the default source selection based on source priority.set-source-port SOURCE PORTโ set the specified source (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).set-port-latency-offset CARD PORT OFFSETโ set a latency offset on a specified port (identified by its symbolic name) that belongs to a card (identified by its symbolic name or numerical index).OFFSETis a number which represents the latency offset in microseconds.get-sink-volume SINKโ get the volume of the specified sink (identified by its symbolic name or numerical index), displayed in the same format as theinfocommand.set-sink-volume SINK VOLUME [VOLUME ...]โ set the volume of the specified sink (identified by its symbolic name or numerical index).VOLUMEcan be specified as an integer (e.g.2000,16384), a linear factor (e.g.0.4,1.100), a percentage (e.g.10%,100%) or a decibel value (e.g.0dB,20dB). If the volume specification starts with a+or-, the volume adjustment will be relative to the current sink volume. A single volume value affects all channels; if multiple volume values are given, their number has to match the sink's number of channels. โ๏ธget-source-volume SOURCEโ get the volume of the specified source (identified by its symbolic name or numerical index), displayed in the same format as theinfocommand.set-source-volume SOURCE VOLUME [VOLUME ...]โ set the volume of the specified source (identified by its symbolic name or numerical index).VOLUMEcan be specified as an integer (e.g.2000,16384), a linear factor (e.g.0.4,1.100), a percentage (e.g.10%,100%) or a decibel value (e.g.0dB,20dB). If the volume specification starts with a+or-, the volume adjustment will be relative to the current source volume. A single volume value affects all channels; if multiple volume values are given, their number has to match the source's number of channels.set-sink-input-volume INPUT VOLUME [VOLUME ...]โ set the volume of the specified sink input (identified by its numerical index).VOLUMEcan be specified as an integer (e.g.2000,16384), a linear factor (e.g.0.4,1.100), a percentage (e.g.10%,100%) or a decibel value (e.g.0dB,20dB). If the volume specification starts with a+or-, the volume adjustment will be relative to the current sink input volume. A single volume value affects all channels; if multiple volume values are given, their number has to match the sink input's number of channels.set-source-output-volume OUTPUT VOLUME [VOLUME ...]โ set the volume of the specified source output (identified by its numerical index).VOLUMEcan be specified as an integer (e.g.2000,16384), a linear factor (e.g.0.4,1.100), a percentage (e.g.10%,100%) or a decibel value (e.g.0dB,20dB). If the volume specification starts with a+or-, the volume adjustment will be relative to the current source output volume. A single volume value affects all channels; if multiple volume values are given, their number has to match the source output's number of channels.get-sink-mute SINKโ get the mute status of the specified sink (identified by its symbolic name or numerical index).set-sink-mute SINK 1|0|toggleโ set the mute status of the specified sink (identified by its symbolic name or numerical index).get-source-mute SOURCEโ get the mute status of the specified source (identified by its symbolic name or numerical index).set-source-mute SOURCE 1|0|toggleโ set the mute status of the specified source (identified by its symbolic name or numerical index).set-sink-input-mute INPUT 1|0|toggleโ set the mute status of the specified sink input (identified by its numerical index).set-source-output-mute OUTPUT 1|0|toggleโ set the mute status of the specified source output (identified by its numerical index).set-sink-formats SINK FORMATSโ set the supported formats of the specified sink (identified by its numerical index) if it's supported by the sink.FORMATSis specified as a semi-colon (;) separated list of formats in the form'encoding[, key1=value1, key2=value2, ...]'โ for example, AC3 at 32000, 44100 and 48000 Hz would be specified as'ac3-iec61937, format.rate = "[ 32000, 44100, 48000 ]"'. For the possible encodings, go peek at https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/ ๐send-message RECIPIENT MESSAGE MESSAGE_PARAMETERSโ send a message to the specified recipient object. If applicable, an additional string containing message parameters can be specified. A string gets returned as a response to the message. For the available messages, see https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/doc/messaging_api.txt. ๐จsubscribeโ subscribe to events. Heads up:pactldoes not exit by itself here, it just keeps waiting for new events. It's giving "I could stay here forever." ๐ซ
๐ AUTHORS ๐
The PulseAudio Developers <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>; PulseAudio is available from http://pulseaudio.org/
๐ซถ SEE ALSO ๐ซถ
And that's the whole page, bestie โ shoutout to the Manuals collection and the User section, where page pactl(1) lives and thrives. Now go control that sound server, you absolute icon. ๐๐
โจ
๐ฆ where this page comes from
- alpine 3.24: pulseaudio-doc 17.0-r7 ยท LGPL-2.1-or-later
- arch rolling: libpulse 17.0+r134+g77d25a1e6-1 ยท LGPL-2.1-or-later
- debian trixie: pulseaudio-utils 17.0+dfsg1-2+b1 ยท LGPL-2.1-or-later
- fedora 43: pulseaudio-utils 17.0-7.fc43 ยท LGPL-2.1-or-later
- fedora 43: pulseaudio-utils 17.0-9.fc43 ยท LGPL-2.1-or-later
- fedora 44: pulseaudio-utils 17.0-9.fc44 ยท LGPL-2.1-or-later
- nixos 26.05: pulseaudio 17.0
- nixpkgs unstable: pulseaudio 17.0
- opensuse-leap 16.0: pulseaudio-utils 17.0-160000.2.2 ยท GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pulseaudio-utils 17.0-160000.2.2 ยท GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pulseaudio-utils 17.0-160000.2.2 ยท GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pulseaudio-utils 17.0-160000.2.2 ยท GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu questing: pulseaudio-utils 1:17.0+dfsg1-2ubuntu3
- ubuntu resolute: pulseaudio-utils 1:17.0+dfsg1-2ubuntu4 ยท LGPL-2.1-or-later
- ubuntu stonking: pulseaudio-utils 1:17.0+dfsg1-2ubuntu6 ยท LGPL-2.1-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms