<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>

<!--
This file is part of PulseAudio.

PulseAudio is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

PulseAudio is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
-->

<manpage name="pactl" section="1" desc="Control a running PulseAudio sound server">

  <synopsis>
    <cmd>pactl [<arg>options</arg>] <arg>COMMAND</arg> [<arg>ARGS ...</arg>]</cmd>
    <cmd>pactl <opt>--help</opt></cmd>
    <cmd>pactl <opt>--version</opt></cmd>
  </synopsis>

  <description>
    <p><file>pactl</file> can be used to issue control commands to the PulseAudio sound server.</p>

    <p><file>pactl</file> only exposes a subset of the available operations. For the full set use the <manref name="pacmd" section="1"/>.</p>
  </description>

  <options>

    <option>
      <p><opt>-h | --help</opt></p>

      <optdesc><p>Show help.</p></optdesc>
    </option>

    <option>
      <p><opt>--version</opt></p>

      <optdesc><p>Show version information.</p></optdesc>
    </option>

    <option>
      <p><opt>-s | --server</opt><arg>=SERVER</arg></p>

      <optdesc><p>Choose the server to connect to.</p></optdesc>
    </option>

    <option>
      <p><opt>-f | --format</opt><arg>=FORMAT</arg></p>

      <optdesc><p>Choose output format, available options are "text" or "json".</p></optdesc>
    </option>

    <option>
      <p><opt>-n | --client-name</opt><arg>=NAME</arg></p>

      <optdesc><p>Specify the client name <file>pactl</file> shall pass to the server when connecting.</p></optdesc>
    </option>

  </options>

  <section name="Commands">
    <p>
        When supplied as arguments to the commands below, the special names \@DEFAULT_SINK@, \@DEFAULT_SOURCE@ and \@DEFAULT_MONITOR@
        can be used to specify the default sink, source and monitor respectively.
    </p>

    <option>
      <p><opt>stat</opt></p>
      <optdesc><p>Dump a few statistics about the memory usage of the PulseAudio daemon.</p></optdesc>
    </option>

    <option>
      <p><opt>info</opt></p>
      <optdesc><p>Dump some info about the PulseAudio daemon.</p></optdesc>
    </option>

    <option>
      <p><opt>list</opt> [<arg>short</arg>] [<arg>TYPE</arg>]</p>
      <optdesc><p>Dump all currently loaded modules, available sinks, sources, streams, etc.  <arg>TYPE</arg> must be one of:
      modules, sinks, sources, sink-inputs, source-outputs, clients, samples, cards, message-handlers.  If not specified, all info is listed
      with the exception of the message-handlers. If short is given, output is in a tabular format, for easy parsing by scripts.</p></optdesc>
    </option>

    <option>
      <p><opt>exit</opt></p>
      <optdesc><p>Asks the PulseAudio server to terminate.</p></optdesc>
    </option>

    <option>
      <p><opt>upload-sample</opt> <arg>FILENAME</arg> [<arg>NAME</arg>]</p>
      <optdesc><p>Upload a sound from the specified audio file into
      the sample cache. The file types supported are those understood
      by <file>libsndfile</file>. The sample in the cache is named
      after the audio file, unless the name is explicitly
      specified.</p></optdesc>
    </option>

    <option>
      <p><opt>play-sample</opt> <arg>NAME</arg> [<arg>SINK</arg>]</p>
      <optdesc><p>Play the specified sample from the sample cache. It
      is played on the default sink, unless the symbolic name or the
      numerical index of the sink to play it on is
      specified.</p></optdesc>
    </option>

    <option>
      <p><opt>remove-sample</opt> <arg>NAME</arg></p>
      <optdesc><p>Remove the specified sample from the sample cache.</p></optdesc>
    </option>

    <option>
      <p><opt>load-module</opt> <arg>NAME</arg> [<arg>ARGUMENTS ...</arg>]</p>
      <optdesc><p>Load the specified module with the specified arguments into the running sound server.
      Prints the numeric index of the module just loaded to STDOUT. You can use it to unload the module later.</p></optdesc>
    </option>

    <option>
      <p><opt>unload-module</opt> <arg>ID|NAME</arg></p>
      <optdesc><p>Unload the module instance identified by the specified numeric index or unload all modules by the specified name.</p></optdesc>
    </option>

    <option>
      <p><opt>move-sink-input</opt> <arg>ID</arg> <arg>SINK</arg></p>
      <optdesc><p>Move the specified playback stream (identified by its numerical index) to the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>move-source-output</opt> <arg>ID</arg> <arg>SOURCE</arg></p>
      <optdesc><p>Move the specified recording stream (identified by its numerical index) to the specified source (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>suspend-sink</opt> <arg>SINK</arg> <arg>true|false</arg></p>
      <optdesc><p>Suspend or resume the specified sink (which may be
        specified either by its symbolic name or numerical index), depending whether true
        (suspend) or false (resume) is passed as 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, making it available for other applications to use. The exact
        behaviour depends on the module.
      </p></optdesc>
    </option>

    <option>
      <p><opt>suspend-source</opt> <arg>SOURCE</arg> <arg>true|false</arg></p>
      <optdesc><p>Suspend or resume the specified source (which may be
        specified either by its symbolic name or numerical index), depending whether true
        (suspend) or false (resume) is passed as 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.
      </p></optdesc>
    </option>

    <option>
      <p><opt>set-card-profile</opt> <arg>CARD</arg> <arg>PROFILE</arg></p>
      <optdesc><p>Set the specified card (identified by its symbolic name or numerical index) to the specified profile (identified by its symbolic name).</p></optdesc>
    </option>

    <option>
      <p><opt>get-default-sink</opt></p>
      <optdesc><p>Returns the symbolic name of the default sink.</p></optdesc>
    </option>

    <option>
      <p><opt>set-default-sink</opt> <arg>SINK</arg></p>
      <optdesc><p>Make the specified sink (identified by its symbolic name or numerical index) the default sink.</p></optdesc>
    </option>

    <option>
      <p><opt>set-sink-port</opt> <arg>SINK</arg> <arg>PORT</arg></p>
      <optdesc><p>Set the specified sink (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).</p></optdesc>
    </option>

    <option>
      <p><opt>get-default-source</opt></p>
      <optdesc><p>Returns the symbolic name of the default source.</p></optdesc>
    </option>

    <option>
      <p><opt>set-default-source</opt> <arg>SOURCE</arg></p>
      <optdesc><p>Make the specified source (identified by its symbolic name or numerical index) the default source.</p></optdesc>
    </option>

    <option>
      <p><opt>set-source-port</opt> <arg>SOURCE</arg> <arg>PORT</arg></p>
      <optdesc><p>Set the specified source (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).</p></optdesc>
    </option>

    <option>
      <p><opt>set-port-latency-offset</opt> <arg>CARD</arg> <arg>PORT</arg> <arg>OFFSET</arg></p>
      <optdesc><p>Set a latency offset to a specified port (identified by its symbolic name) that belongs to a card (identified by its symbolic name or numerical index).
      <arg>OFFSET</arg> is a number which represents the latency offset in microseconds</p></optdesc>
    </option>

    <option>
      <p><opt>get-sink-volume</opt> <arg>SINK</arg></p>
      <optdesc><p>Get the volume of the specified sink (identified by its symbolic name or numerical index) displayed in the same format as the `info` command.</p></optdesc>
    </option>

    <option>
      <p><opt>set-sink-volume</opt> <arg>SINK</arg> <arg>VOLUME [VOLUME ...]</arg></p>
      <optdesc><p>Set the volume of the specified sink (identified by its symbolic name or numerical index).
      <arg>VOLUME</arg> can 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 start 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.</p></optdesc>
    </option>

    <option>
      <p><opt>get-source-volume</opt> <arg>SOURCE</arg></p>
```
      <optdesc><p>Get the volume of the specified source (identified by its symbolic name or numerical index) displayed in the same format as the `info` command.</p></optdesc>
    </option>

    <option>
      <p><opt>set-source-volume</opt> <arg>SOURCE</arg> <arg>VOLUME [VOLUME ...]</arg></p>
      <optdesc><p>Set the volume of the specified source (identified by its symbolic name or numerical index).
      <arg>VOLUME</arg> can 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 start 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.</p></optdesc> </option>

    <option>
      <p><opt>set-sink-input-volume</opt> <arg>INPUT</arg> <arg>VOLUME [VOLUME ...]</arg></p>
      <optdesc><p>Set the volume of the specified sink input (identified by its numerical index).
      <arg>VOLUME</arg> can 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 start 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.</p></optdesc> </option>

    <option>
      <p><opt>set-source-output-volume</opt> <arg>OUTPUT</arg> <arg>VOLUME [VOLUME ...]</arg></p>
      <optdesc><p>Set the volume of the specified source output (identified by its numerical index).
      <arg>VOLUME</arg> can 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 start 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.</p></optdesc>
    </option>

    <option>
      <p><opt>get-sink-mute</opt> <arg>SINK</arg></p>
      <optdesc><p>Get the mute status of the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>set-sink-mute</opt> <arg>SINK</arg> <arg>1|0|toggle</arg></p>
      <optdesc><p>Set the mute status of the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>get-source-mute</opt> <arg>SOURCE</arg></p>
      <optdesc><p>Get the mute status of the specified source (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>set-source-mute</opt> <arg>SOURCE</arg> <arg>1|0|toggle</arg></p>
      <optdesc><p>Set the mute status of the specified source (identified by its symbolic name or numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>set-sink-input-mute</opt> <arg>INPUT</arg> <arg>1|0|toggle</arg></p>
      <optdesc><p>Set the mute status of the specified sink input (identified by its numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>set-source-output-mute</opt> <arg>OUTPUT</arg> <arg>1|0|toggle</arg></p>
      <optdesc><p>Set the mute status of the specified source output (identified by its numerical index).</p></optdesc>
    </option>

    <option>
      <p><opt>set-sink-formats</opt> <arg>SINK</arg> <arg>FORMATS</arg></p>
      <optdesc><p>Set the supported formats of the specified sink (identified
      by its numerical index) if supported by the sink. <arg>FORMATS</arg> is
      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 ]"'). See
      https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
      for possible encodings. </p></optdesc>
    </option>

    <option>
      <p><opt>send-message</opt> <arg>RECIPIENT</arg> <arg>MESSAGE</arg> <arg>MESSAGE_PARAMETERS</arg></p>
      <optdesc><p>Send a message to the specified recipient object. If applicable an additional string containing
      message parameters can be specified. A string is returned as a response to the message. For available messages
      see https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/doc/messaging_api.txt.</p></optdesc>
    </option>

    <option>
      <p><opt>subscribe</opt></p>
      <optdesc><p>Subscribe to events, pactl does not exit by itself, but keeps waiting for new events.</p></optdesc>
    </option>

  </section>

  <section name="Authors">
    <p>The PulseAudio Developers &lt;@PACKAGE_BUGREPORT@&gt;; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
  </section>

  <seealso>
    <p>
      <manref name="pulseaudio" section="1"/>,
      <manref name="pacmd" section="1"/>
    </p>
  </seealso>

</manpage>
