man: move from xmltoman to rst2man

xmltoman looks dead and uses XML as well as pulls in a long list of
Perl dependencies. This replaces it with rst2man that has almost no
dependencies beyond Python, which is already required for the Meson
build system.

Naturally rst2man uses reStructuredText and the pages were rewritten
via regex and manual editing to be as close to original XML format
as possible. A few fixes and updates were done too. Most notably a
note was added to indicate that production deployments should not be
starting the session manager via pipewire.conf file.

There's three slight formatting issues/differences:
1. rst2man produces simpler footer.
2. "-f | --foo=value" confuses the parser and it fails to correctly
   add argument specific syntax highlighting to assignment value.
3. XML version had inconsistent use of <arg> and <opt> which has
   been partially addressed. But different manual pages still have
   their differences to what and how is highlighted.
This commit is contained in:
Niklāvs Koļesņikovs 2021-09-03 10:16:48 +03:00 committed by Wim Taymans
parent 91f1b44499
commit e41187d643
23 changed files with 813 additions and 912 deletions

View file

@ -22,7 +22,7 @@ include:
.fedora:
variables:
# Update this tag when you want to trigger a rebuild
FDO_DISTRIBUTION_TAG: '2021-08-01.0'
FDO_DISTRIBUTION_TAG: '2021-09-03.0'
FDO_DISTRIBUTION_VERSION: '33'
FDO_DISTRIBUTION_PACKAGES: >-
alsa-lib-devel
@ -42,6 +42,7 @@ include:
libva-devel
libX11-devel
pulseaudio-libs-devel
python3-docutils
sbc-devel
ShellCheck
SDL2-devel
@ -50,7 +51,6 @@ include:
webrtc-audio-processing-devel
which
valgrind
xmltoman
ninja-build
pkgconf
python3-pip
@ -60,7 +60,7 @@ include:
.ubuntu:
variables:
# Update this tag when you want to trigger a rebuild
FDO_DISTRIBUTION_TAG: '2021-08-01.0'
FDO_DISTRIBUTION_TAG: '2021-09-03.0'
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_PACKAGES: >-
debhelper-compat
@ -82,8 +82,8 @@ include:
libx11-dev
ninja-build
pkg-config
python3-docutils
systemd
xmltoman
python3-pip
FDO_DISTRIBUTION_EXEC: >-
pip3 install meson

View file

@ -9,32 +9,31 @@ manpage_conf.set('top_srcdir', meson.source_root())
manpage_conf.set('top_builddir', meson.build_root())
manpages = [
'pipewire.1.xml.in',
'pipewire.conf.5.xml.in',
'pw-cat.1.xml.in',
'pw-cli.1.xml.in',
'pw-dot.1.xml.in',
'pw-metadata.1.xml.in',
'pw-mididump.1.xml.in',
'pw-mon.1.xml.in',
'pw-profiler.1.xml.in',
'pipewire.1.rst.in',
'pipewire.conf.5.rst.in',
'pw-cat.1.rst.in',
'pw-cli.1.rst.in',
'pw-dot.1.rst.in',
'pw-metadata.1.rst.in',
'pw-mididump.1.rst.in',
'pw-mon.1.rst.in',
'pw-profiler.1.rst.in',
]
if not get_option('pipewire-jack').disabled()
manpages += 'pw-jack.1.xml.in'
manpages += 'pw-jack.1.rst.in'
endif
foreach m : manpages
file = m.split('.xml.in').get(0)
xml = configure_file(input : m,
output : file + '.xml',
file = m.split('.rst.in').get(0)
rst = configure_file(input : m,
output : file + '.rst',
configuration : manpage_conf)
section = file.split('.').get(-1)
custom_target(file + '.target',
output : file,
input : xml,
command : [xmltoman, '@INPUT@'],
capture : true,
input : rst,
command : [rst2man, '@INPUT@', '@OUTPUT@'],
install : true,
install_dir : get_option('mandir') / 'man' + section)
endforeach

50
man/pipewire.1.rst.in Normal file
View file

@ -0,0 +1,50 @@
.. This file is part of PipeWire.
pipewire
########
-------------------------
The PipeWire media server
-------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pipewire** [*options*]
DESCRIPTION
===========
PipeWire is a service that facilitates sharing of multimedia content
between devices and applications.
The **pipewire** daemon reads a config file that is further documented in
``pipewire.conf(5)`` manual page.
OPTIONS
=======
-h | --help
Show help.
--version
Show version information.
-c | --config=FILE
Load the given config file (Default: pipewire.conf).
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>;
PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pw-mon(1)``,
``pw-cat(1)``,
``pw-cli(1)``,

View file

@ -1,58 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pipewire" section="1" desc="The PipeWire media server">
<synopsis>
<cmd>pipewire [<arg>options</arg>]</cmd>
</synopsis>
<description>
<p>PipeWire is a service that facilitates sharing of multimedia content
between devices and applications. </p>
<p>The pipewire daemon reads a config file that is further documented in
<manref name="pipewire.conf" section="5"/></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>-c | --config</opt></p>
<optdesc><p>Load the given config file (Default: pipewire.conf).</p></optdesc>
</option>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;;
PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pw-mon" section="1"/>,
<manref name="pw-cat" section="1"/>,
<manref name="pw-cli" section="1"/>,
</p>
</section>
</manpage>

View file

@ -0,0 +1,91 @@
.. This file is part of PipeWire.
pipewire.conf
#############
--------------------------------------
The PipeWire server configuration file
--------------------------------------
:Manual section: 5
:Manual group: File Formats Manual
.. _synopsis:
SYNOPSIS
========
*$XDG_CONFIG_HOME/pipewire/pipewire.conf*
*@PIPEWIRE_CONFIG_DIR@/pipewire.conf*
*@PIPEWIRE_CONFDATADIR@/pipewire.conf*
DESCRIPTION
===========
PipeWire is a service that facilitates sharing of multimedia content
between devices and applications.
On startup, the daemon reads a configuration file to configure
itself. It executes a series of commands listed in the config
file.
The config files are loaded in the order listed in the SYNOPSIS_.
The environment variables ``PIPEWIRE_CONFIG_DIR``, ``PIPEWIRE_CONFIG_PREFIX``
and ``PIPEWIRE_CONFIG_NAME`` can be used to specify an alternative config
directory, subdirectory and file respectively.
CONFIGURATION FILE FORMAT
=========================
The configuration file format is grouped into sections. A section
is either a dictionary, {}, or an array, []. Dictionary and array
entries are separated by whitespace and may be simple value
assignment, an array or a dictionary. For example:
name = value # simple assignment
name = { key1 = value1 key2 = value2 } # a dictionary with two
entries
name = [ value1 value2 ] # an array with two entries
name = [ { k = v1 } { k = v2 } ] # an array of dictionaries
CONFIGURATION FILE SECTIONS
===========================
context.properties
Dictionary. These properties configure the PipeWire instance.
context.spa-libs
Dictionary. Maps plugin features with globs to a spa library.
context.modules
Array of dictionaries. Each entry in the array is a dictionary with the *name* of the module to load,
including optional *args* and *flags*. Most modules support being loaded
multiple times.
context.objects
Array of dictionaries. Each entry in the array is a dictionary containing the *factory* to create an
object from and optional extra arguments specific to that factory.
context.exec
Array of dictionaries. Each entry in the array is dictionary containing the *path* of a program to
execute on startup and optional *args*.
This array used to contain an entry to start the session manager but this mode
of operation has since been demoted to development aid. Avoid starting a
session manager in this way in production environment.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``pw-mon(1)``,

View file

@ -1,78 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pipewire.conf" section="5" desc="The PipeWire server configuration file">
<synopsis>
<p><file>$XDG_CONFIG_HOME/pipewire/pipewire.conf</file></p>
<p><file>@PIPEWIRE_CONFIG_DIR@/pipewire.conf</file></p>
<p><file>@PIPEWIRE_CONFDATADIR@/pipewire.conf</file></p>
</synopsis>
<description>
<p>PipeWire is a service that facilitates sharing of multimedia content
between devices and applications. </p>
<p>On startup, the daemon reads a configuration file to configure
itself. It executes a series of commands listed in the config
file.</p>
<p>The config files are loaded in the order listed in the SYNOPSIS.
The environment variables PIPEWIRE_CONFIG_DIR, PIPEWIRE_CONFIG_PREFIX
and PIPEWIRE_CONFIG_NAME can be used to specify an alternative config
directory, subdirectory and file respectively.</p>
</description>
<section name="Configuration File Format">
<p>The configuration file format is grouped into sections. A section
is either a dictionary, {}, or an array, []. Dictionary and array
entries are separated by whitespace and may be simple value
assignment, an array or a dictionary. For example:
</p>
<p>name = value # simple assignment </p>
<p>name = { key1 = value1 key2 = value2 } # a dictionary with two
entries</p>
<p>name = [ value1 value2 ] # an array with two entries</p>
<p>name = [ { k = v1 } { k = v2 } ] # an array of dictionaries </p>
</section>
<section name="Configuration File Sections">
<p><opt>context.properties</opt> (dictionary): These properties
configure the pipewire instance.
</p>
<p><opt>context.spa-libs</opt> (dictionary): Maps plugin features with
globs to a spa library.
</p>
<p><opt>context.modules</opt> (array): Each entry in the array is a
dictionary with the <opt>name</opt> of the module to load, including
optional <opt>args</opt> and <opt>flags</opt>. Most modules support
being loaded multiple times.
</p>
<p><opt>context.objects</opt> (array): Each entry in the array is a
dictionary containing the <opt>factory</opt> to create an object from
and optional extra arguments specific to that factory.
</p>
<p><opt>context.exec</opt> (array): Each entry in the array is
dictionary containing the <opt>path</opt> of a program to execute on
startup and optional <opt>args</opt>. This array usually contains an
entry to start the session manager.
</p>
</section>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-mon" section="1"/>,
</p>
</section>
</manpage>

149
man/pw-cat.1.rst.in Normal file
View file

@ -0,0 +1,149 @@
.. This file is part of PipeWire.
pw-cat
######
-----------------------------------
Play and record media with PipeWire
-----------------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-cat** [*options*] [*FILE*]
| **pw-play** [*options*] [*FILE*]
| **pw-record** [*options*] [*FILE*]
| **pw-midiplay** [*options*] [*FILE*]
| **pw-midirecord** [*options*] [*FILE*]
DESCRIPTION
===========
**pw-cat** is a simple tool for playing back or
capturing raw or encoded media files on a PipeWire
server. It understands all audio file formats supported by
``libsndfile``.
OPTIONS
=======
-h | --help
Show help.
--version
Show version information.
-v | --verbose
Verbose operation.
-R | --remote=NAME
The name the *remote* instance to connect to. If left unspecified,
a connection is made to the default PipeWire instance.
-p | --playback
Playback mode. Read data from the specified file, and play it back. If the tool is called under the name **pw-play** or **pw-midiplay** this is the default.
-r | --record
Recording mode. Capture data and write it to the specified file. If the tool is called under the name **pw-record** or **pw-midirecord** this is the default.
-m | --midi
MIDI mode. *FILE* is a MIDI file. If the tool is called under the name **pw-midiplay** or **pw-midirecord** this is the default.
--media-type=VALUE
Set the media type property (default Audio/Midi depending on mode).
The media type is used by the session manager to select a suitable target
to link to.
--media-category=VALUE
Set the media category property (default Playback/Capture depending on mode).
The media type is used by the session manager to select a suitable target
to link to.
--media-role=VALUE
Set the media role property (default Music).
The media type is used by the session manager to select a suitable target
to link to.
--target=VALUE
Set a node target (default auto). The value can be:
auto
Automatically select (Default)
0
Don't try to link this node
<id>
The id of a target node
--latency=VALUE[*units*]
Set the node latency (default 100ms)
The latency determines the minimum amount of time it takes
for a sample to travel from application to device (playback) and
from device to application (capture).
The latency determines the size of the buffers that the
application will be able to fill. Lower latency means smaller
buffers but higher overhead. Higher latency means larger buffers
and lower overhead.
Units can be **s** for seconds, **ms** for milliseconds,
**us** for microseconds, **ns** for nanoseconds.
If no units are given, the latency value is samples with the samplerate
of the file.
--list-targets
List the available targets for **--target**
-q | --quality=VALUE
Resampler quality. When the samplerate of the source or
destination file does not match the samplerate of the server, the
data will be resampled. Higher quality uses more CPU. Values between 0 and 15 are
allowed, the default quality is 4.
--rate=VALUE
The sample rate, default 48000.
--channels=VALUE
The number of channels, default 2.
--channel-map=VALUE
The channelmap. Possible values include:
**mono**, **stereo**, **surround-21**,
**quad**, **surround-22**, **surround-40**,
**surround-31**, **surround-41**,
**surround-50**, **surround-51**,
**surround-51r**, **surround-70**,
**surround-71** or a comma separated list of channel names:
**FL**, **FR**, **FC**, **LFE**,
**SL**, **SR**, **FLC**, **FRC**,
**RC**, **RL**, **RR**, **TC**,
**TFL**, **TFC**, **TFR**, **TRL**,
**TRC**, **TRR**, **RLC**, **RRC**,
**FLW**, **FRW**, **LFE2**, **FLH**,
**FCH**, **FRH**, **TFLC**, **TFRC**,
**TSL**, **TSR**, **LLFR**, **RLFE**,
**BC**, **BLC**, **BRC**
--format=VALUE
The sample format to use. One of:
**s8**, **s16** (default), **s24**, **s32**,
**f32**, **f64**.
--volume=VALUE
The stream volume, default 1.000.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``PipeWire(1)``,
``pw-mon(1)``,

View file

@ -1,186 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-cat" section="1" desc="Play and record media with PipeWire">
<synopsis>
<cmd>pw-cat [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
<cmd>pw-play [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
<cmd>pw-record [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
<cmd>pw-midiplay [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
<cmd>pw-midirecord [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
</synopsis>
<description>
<p><file>pw-cat</file> is a simple tool for playing back or
capturing raw or encoded media files on a PipeWire
server. It understands all audio file formats supported by
<file>libsndfile</file>.</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>-v | --verbose</opt></p>
<optdesc><p>Verbose operation.</p></optdesc>
</option>
<option>
<p><opt>-R | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to connect to. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<option>
<p><opt>-p | --playback</opt></p>
<optdesc><p>Playback mode. Read data from the specified file, and play it back. If the tool is called under the name <file>pw-play</file> or <file>pw-midiplay</file> this is the default.</p></optdesc>
</option>
<option>
<p><opt>-r | --record</opt></p>
<optdesc><p>Recording mode. Capture data and write it to the specified file. If the tool is called under the name <file>pw-record</file> or <file>pw-midirecord</file> this is the default.</p></optdesc>
</option>
<option>
<p><opt>-m | --midi</opt></p>
<optdesc><p>Midi mode. FILE is a midi file. If the tool is called under the name <file>pw-midiplay</file> or <file>pw-midirecord</file> this is the default.</p></optdesc>
</option>
<option>
<p><opt>--media-type</opt><arg>=VALUE</arg></p>
<optdesc><p>Set the media type property (default Audio/Midi depending on mode).
The media type is used by the session manager to select a suitable target
to link to.</p></optdesc>
</option>
<option>
<p><opt>--media-category</opt><arg>=VALUE</arg></p>
<optdesc><p>Set the media category property (default Playback/Capture depending on mode).
The media type is used by the session manager to select a suitable target
to link to.</p></optdesc>
</option>
<option>
<p><opt>--media-role</opt><arg>=VALUE</arg></p>
<optdesc><p>Set the media role property (default Music).
The media type is used by the session manager to select a suitable target
to link to.</p></optdesc>
</option>
<option>
<p><opt>--target</opt><arg>=VALUE</arg></p>
<optdesc><p>Set a node target (default auto). The value can be:
<opt>auto</opt>: <optdesc>Automatically select (Default)</optdesc>,
<opt>0</opt>: <optdesc>Don't try to link this node</optdesc>,
<opt>&lt;id&gt;</opt>: <optdesc>The id of a target node</optdesc>
</p></optdesc>
</option>
<option>
<p><opt>--latency</opt><arg>=VALUE[units]</arg></p>
<optdesc><p>Set the node latency (default 100ms)</p>
<p>The latency determines the minimum amount of time it takes
for a sample to travel from application to device (playback) and
from device to application (capture).</p>
<p>The latency determines the size of the buffers that the
application will be able to fill. Lower latency means smaller
buffers but higher overhead. Higher latency means larger buffers
and lower overhead.</p>
<p>Units can be <opt>s</opt> for seconds, <opt>ms</opt> for milliseconds,
<opt>us</opt> for microseconds, <opt>ns</opt> for nanoseconds.
If no units are given, the latency value is samples with the samplerate
of the file.</p>
</optdesc>
</option>
<option>
<p><opt>--list-targets</opt></p>
<optdesc><p>List the available targets for <opt>--target</opt></p>
</optdesc>
</option>
<option>
<p><opt>-q | --quality</opt><arg>=VALUE</arg></p>
<optdesc><p>Resampler quality. When the samplerate of the source or
destination file does not match the samplerate of the server, the
data will be resampled. Higher quality uses more CPU. Values between 0 and 15 are
allowed, the default quality is 4.</p>
</optdesc>
</option>
<option>
<p><opt>--rate</opt><arg>=VALUE</arg></p>
<optdesc><p>The sample rate, default 48000.</p>
</optdesc>
</option>
<option>
<p><opt>--channels</opt><arg>=VALUE</arg></p>
<optdesc><p>The number of channels, default 2.</p>
</optdesc>
</option>
<option>
<p><opt>--channel-map</opt><arg>=VALUE</arg></p>
<optdesc><p>The channelmap. Possible values include:
<opt>mono</opt>, <opt>stereo</opt>, <opt>surround-21</opt>,
<opt>quad</opt>, <opt>surround-22</opt>, <opt>surround-40</opt>,
<opt>surround-31</opt>, <opt>surround-41</opt>,
<opt>surround-50</opt>, <opt>surround-51</opt>,
<opt>surround-51r</opt>, <opt>surround-70</opt>,
<opt>surround-71</opt> or a comma separated list of channel names:
<opt>FL</opt>, <opt>FR</opt>, <opt>FC</opt>, <opt>LFE</opt>,
<opt>SL</opt>, <opt>SR</opt>, <opt>FLC</opt>, <opt>FRC</opt>,
<opt>RC</opt>, <opt>RL</opt>, <opt>RR</opt>, <opt>TC</opt>,
<opt>TFL</opt>, <opt>TFC</opt>, <opt>TFR</opt>, <opt>TRL</opt>,
<opt>TRC</opt>, <opt>TRR</opt>, <opt>RLC</opt>, <opt>RRC</opt>,
<opt>FLW</opt>, <opt>FRW</opt>, <opt>LFE2</opt>, <opt>FLH</opt>,
<opt>FCH</opt>, <opt>FRH</opt>, <opt>TFLC</opt>, <opt>TFRC</opt>,
<opt>TSL</opt>, <opt>TSR</opt>, <opt>LLFR</opt>, <opt>RLFE</opt>,
<opt>BC</opt>, <opt>BLC</opt>, <opt>BRC</opt></p>
</optdesc>
</option>
<option>
<p><opt>--format</opt><arg>=VALUE</arg></p>
<optdesc><p>The sample format to use. One of:
<opt>s8</opt>, <opt>s16</opt> (default), <opt>s24</opt>, <opt>s32</opt>,
<opt>f32</opt>, <opt>f64</opt>.</p>
</optdesc>
</option>
<option>
<p><opt>--volume</opt><arg>=VALUE</arg></p>
<optdesc><p>The stream volume, default 1.000.</p>
</optdesc>
</option>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-mon" section="1"/>,
</p>
</section>
</manpage>

141
man/pw-cli.1.rst.in Normal file
View file

@ -0,0 +1,141 @@
.. This file is part of PipeWire.
pw-cli
######
-----------------------------------
The PipeWire Command Line Interface
-----------------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-cli** [*command*]
DESCRIPTION
===========
Interact with a PipeWire instance.
When a command is given, **pw-cli**
will execute the command and exit
When no command is given, **pw-cli**
starts an interactive session with the default PipeWire instance
*pipewire-0*.
Connections to other, remote instances can be made. The current instance
name is displayed at the prompt. Some commands operate on the current
instance and some on the local instance.
Use the 'help' command to list the available commands.
GENERAL COMMANDS
================
help
Show a quick help on the commands available.
MODULE MANAGEMENT
=================
| Modules are loaded and unloaded in the local instance and can add functionality or objects to the local instance.
load-module *name* [*arguments...*]
Load a module specified by its name and arguments. For most
modules it is OK to be loaded more than once.
This command returns a module variable that can be used
to unload the module.
unload-module *module-var*
Unload a module, specified either by its variable.
OBJECT INTROSPECTION
====================
list-objects
List the objects of the current instance.
Objects are listed with their *id*, *type* and *version*.
info *id* | *all*
Get information about a specific object or *all* objects.
Requesting info about an object will also notify you of changes.
WORKING WITH REMOTES
====================
connect [*remote-name*]
Connect to a remote instance and make this the new current
instance.
If no remote name is specified, a connection is made to
the default remote instance, usually *pipewire-0*.
This command returns a remote var that can be used to disconnect or
switch remotes.
disconnect [*remote-var*]
Disconnect from a *remote instance*.
If no remote name is specified, the current instance is disconnected.
list-remotes
List all *remote instances*.
switch-remote [*remote-var*]
Make the specified *remote* the current instance.
If no remote name is specified, the local instance is made current.
NODE MANAGEMENT
===============
create-node *factory-name* [*properties...*]
Create a node from a factory in the current instance.
Properties are key=value pairs separated by whitespace.
This command returns a *node variable*.
destroy-node *node-var*
Destroy a node.
export-node *node-id* [*remote-var*]
Export a node from the local instance to the specified instance.
When no instance is specified, the node will be exported to the current
instance.
LINK MANAGEMENT
===============
create-link *node-id* *port-id* *node-id* *port-id* [*properties...*]
Create a link between 2 nodes and ports.
Port *ids* can be *-1* to automatically select an available port.
Properties are key=value pairs separated by whitespace.
This command returns a *link variable*.
destroy-link *link-var*
Destroy a link.
EXAMPLES
========
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``pw-mon(1)``,

View file

@ -1,155 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-cli" section="1" desc="The PipeWire Command Line Interface">
<synopsis>
<cmd>pw-cli [<arg>command</arg>]</cmd>
</synopsis>
<description>
<p>Interact with a PipeWire instance.</p>
<p>When a command is given, <manref name="pw-cli" section="1"/>
will execute the command and exit</p>
<p>When no command is given, <manref name="pw-cli" section="1"/>
starts an interactive session with the default pipewire instance
pipewire-0.</p>
<p>Connections to other, remote instances can be made. The current instance
name is displayed at the prompt. Some commands operate on the current
instance and some on the local instance.</p>
<p>Use the 'help' command to list the available commands.</p>
</description>
<section name="General commands">
<option>
<p><opt>help</opt></p>
<optdesc><p>Show a quick help on the commands available.</p></optdesc>
</option>
</section>
<section name="Module Management">
<p>Modules are loaded and unloaded in the local instance and can add
functionality or objects to the local instance.</p>
<option>
<p><opt>load-module</opt> <arg>name</arg> [<arg>arguments...</arg>]</p>
<optdesc><p>Load a module specified by its name and arguments. For most
modules it is OK to be loaded more than once.</p>
<p>This command returns a module variable that can be used
to unload the module.</p></optdesc>
</option>
<option>
<p><opt>unload-module</opt> <arg>module-var</arg></p>
<optdesc><p>Unload a module, specified either by its variable.</p></optdesc>
</option>
</section>
<section name="Object Introspection">
<option>
<p><opt>list-objects</opt></p>
<optdesc><p>List the objects of the current instance.</p>
<p>Objects are listed with their id, type and version.</p></optdesc>
</option>
<option>
<p><opt>info</opt> <arg>id|all</arg></p>
<optdesc><p>Get information about a specific object or all objects.</p>
<p>Requesting info about an object will also notify you of changes.</p>
</optdesc>
</option>
</section>
<section name="Working with remotes">
<option>
<p><opt>connect</opt> [<arg>remote-name</arg>]</p>
<optdesc><p>Connect to a remote instance and make this the new current
instance.</p><p>If no remote name is specified, a connection is made to
the default remote instance, usually pipewire-0</p>
<p>This command returns a remote var that can be used to disconnect or
switch remotes</p></optdesc>
</option>
<option>
<p><opt>disconnect</opt> [<arg>remote-var</arg>]</p>
<optdesc><p>Disconnect from a remote instance.</p>
<p>If no remote name is specified, the current instance is disconnected.
</p></optdesc>
</option>
<option>
<p><opt>list-remotes</opt></p>
<optdesc><p>List all remote instances.</p></optdesc>
</option>
<option>
<p><opt>switch-remote</opt> [<arg>remote-var</arg>]</p>
<optdesc><p>Make the specified remote the current instance.</p>
<p>If no remote name is specified, the local instance is made current.
</p></optdesc>
</option>
</section>
<section name="Node management">
<option>
<p><opt>create-node</opt> <arg>factory-name</arg> [<arg>properties...</arg>]</p>
<optdesc><p>Create a node from a factory in the current instance.</p>
<p>Properties are key=value pairs separated by whitespace</p>
<p>This command returns a node variable.</p></optdesc>
</option>
<option>
<p><opt>destroy-node</opt> <arg>node-var</arg></p>
<optdesc><p>Destroy a node</p></optdesc>
</option>
<option>
<p><opt>export-node</opt> <arg>node-id</arg> [<arg>remote-var</arg>]</p>
<optdesc><p>Export a node from the local instance to the specified instance.
When no instance is specified, the node will be exported to the current
instance.</p></optdesc>
</option>
</section>
<section name="Link management">
<option>
<p><opt>create-link</opt>
<arg>node-id</arg> <arg>port-id</arg>
<arg>node-id</arg> <arg>port-id</arg> [<arg>properties...</arg>]</p>
<optdesc><p>Create a link between 2 nodes and ports.</p>
<p>Port ids can be -1 to automatically select an available port.</p>
<p>Properties are key=value pairs separated by whitespace</p>
<p>This command returns a link variable.</p></optdesc>
</option>
<option>
<p><opt>destroy-link</opt> <arg>link-var</arg></p>
<optdesc><p>Destroy a link</p></optdesc>
</option>
</section>
<section name="Examples">
<p></p>
</section>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-mon" section="1"/>,
</p>
</section>
</manpage>

67
man/pw-dot.1.rst.in Normal file
View file

@ -0,0 +1,67 @@
.. This file is part of PipeWire.
pw-dot
######
---------------------------
The PipeWire dot graph dump
---------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-dot** [*options*]
DESCRIPTION
===========
Create a .dot file of the PipeWire graph.
The .dot file can then be visualized with a tool like **dotty**
or rendered to a PNG file with ``dot -Tpng pw.dot -o pw.png``.
OPTIONS
=======
-r | --remote=NAME
The name the remote instance to connect to. If left unspecified,
a connection is made to the default PipeWire instance.
-h | --help
Show help.
--version
Show version information.
-a | --all
Show all object types.
-s | --smart
Show linked objects only.
-d | --detail
Show all object properties.
-o FILE | --output=FILE
Output file name (Default pw.dot). Use - for stdout.
-L | --lr
Lay the graph from left to right, instead of dot's default top to bottom.
-9 | --90
Lay the graph using 90-degree angles in edges.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``pw-cli(1)``,
``pw-mon(1)``,

View file

@ -1,85 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-dot" section="1" desc="The PipeWire dot graph dump">
<synopsis>
<cmd>pw-dot [<arg>options</arg>]</cmd>
</synopsis>
<description>
<p>Create a .dot file of the PipeWire graph.</p>
<p>The .dot file can then be visualized with a tool like <cmd>dotty</cmd>
or rendered to a png file with <cmd>dot -Tpng pw.dot -o pw.png</cmd>.</p>
</description>
<options>
<option>
<p><opt>-r | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to connect to. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<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>-a | --all</opt></p>
<optdesc><p>Show all object types.</p></optdesc>
</option>
<option>
<p><opt>-s | --smart</opt></p>
<optdesc><p>Show linked objects only.</p></optdesc>
</option>
<option>
<p><opt>-d | --detail</opt></p>
<optdesc><p>Show all object properties.</p></optdesc>
</option>
<option>
<p><opt>-o FILE | --output</opt><arg>=FILE</arg></p>
<optdesc><p>Output file name (Default pw.dot). Use - for stdout.</p></optdesc>
</option>
<option>
<p><opt>-L | --lr</opt></p>
<optdesc><p>Lay the graph from left to right, instead of dot's default top to bottom.</p></optdesc>
</option>
<option>
<p><opt>-9 | --90</opt></p>
<optdesc><p>Lay the graph using 90-degree angles in edges.</p></optdesc>
</option>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-cli" section="1"/>,
<manref name="pw-mon" section="1"/>,
</p>
</section>
</manpage>

67
man/pw-jack.1.rst.in Normal file
View file

@ -0,0 +1,67 @@
.. This file is part of PipeWire.
pw-jack
#######
----------------------------
Use PipeWire instead of JACK
----------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-jack** [*options*] *COMMAND* [*FILE*]
DESCRIPTION
===========
**pw-jack** modifies the ``LD_LIBRARY_PATH`` environment
variable so that applications will load PipeWire's reimplementation
of the JACK client libraries instead of JACK's own
libraries. This results in JACK clients being redirected to
PipeWire.
If PipeWire's reimplementation of the JACK client libraries
has been installed as a system-wide replacement for JACK's
own libraries, then the whole system already behaves in that way,
in which case **pw-jack** has no practical effect.
OPTIONS
=======
-h
Show help.
-r NAME
The name of the remote instance to connect to. If left
unspecified, a connection is made to the default PipeWire
instance.
-v
Verbose operation.
EXAMPLES
========
| **pw-jack** sndfile-jackplay /usr/share/sounds/freedesktop/stereo/bell.oga
NOTES
=====
Using PipeWire for audio is currently considered to be
experimental.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>;
PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``jackd(1)``,

View file

@ -1,69 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-jack" section="1" desc="Use PipeWire instead of JACK">
<synopsis>
<cmd>pw-jack [<arg>options</arg>] <arg>COMMAND</arg> [<arg>FILE</arg>]</cmd>
</synopsis>
<description>
<p><file>pw-jack</file> modifies the LD_LIBRARY_PATH environment
variable so that applications will load PipeWire's reimplementation
of the JACK client libraries instead of JACK's own
libraries. This results in JACK clients being redirected to
PipeWire.</p>
<p>If PipeWire's reimplementation of the JACK client libraries
has been installed as a system-wide replacement for JACK's
own libraries, then the whole system already behaves in that way,
in which case <file>pw-jack</file> has no practical effect.</p>
</description>
<options>
<option>
<p><opt>-h</opt></p>
<optdesc><p>Show help.</p></optdesc>
</option>
<option>
<p><opt>-r</opt> <arg>NAME</arg></p>
<optdesc><p>The name of the remote instance to connect to. If left
unspecified, a connection is made to the default PipeWire
instance.</p></optdesc>
</option>
<option>
<p><opt>-v</opt></p>
<optdesc><p>Verbose operation.</p></optdesc>
</option>
</options>
<section name="Example">
<p><cmd>pw-jack sndfile-jackplay /usr/share/sounds/freedesktop/stereo/bell.oga</cmd></p>
</section>
<section name="Notes">
<p>Using PipeWire for audio is currently considered to be
experimental.</p>
</section>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;;
PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="jackd" section="1"/>,
</p>
</section>
</manpage>

69
man/pw-metadata.1.rst.in Normal file
View file

@ -0,0 +1,69 @@
.. This file is part of PipeWire.
pw-metadata
###########
---------------------
The PipeWire metadata
---------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-metadata** [*options*] [*id* [*key* [*value* [*type* ] ] ] ]
DESCRIPTION
===========
Monitor, set and delete metadata on PipeWire objects.
Metadata are key/type/value triplets attached to objects identified
by *id*. The metadata is shared between all applications
binding to the same metadata object. When an object is destroyed, all its
metadata is automatically removed.
When no *value* is given, **pw-metadata** will query and
log the metadata matching the optional arguments *id*
and *key*. Without any arguments, all metadata is displayed.
When *value* is given, **pw-metadata** will set the
metadata for *id* and *key* to *value* and
an optional *type*.
OPTIONS
=======
-r | --remote=NAME
The name the remote instance to use. If left unspecified,
a connection is made to the default PipeWire instance.
-h | --help
Show help.
--version
Show version information.
-m | --monitor
Keeps running and log the changes to the metadata.
-d | --delete
Delete all metadata for *id* or for the
specified *key* of object *id*
Without any option, all metadata is removed
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``pw-mon(1)``,
``pw-cli(1)``,

View file

@ -1,79 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-metadata" section="1" desc="The PipeWire metadata">
<synopsis>
<cmd>pw-metadata [<arg>options</arg>] [<arg>id</arg> [<arg>key</arg> [<arg>value</arg> [<arg>type</arg> ] ] ] ]</cmd>
</synopsis>
<description>
<p>Monitor, set and delete metadata on PipeWire objects.</p>
<p>Metadata are key/type/value triplets attached to objects identified
by <arg>id</arg>. The metadata is shared between all applications
binding to the same metadata object. When an object is destroyed, all its
metadata is automatically removed.</p>
<p>When no <arg>value</arg> is given, <cmd>pw-metadata</cmd> will query and
log the metadata matching the optional arguments <arg>id</arg>
and <arg>key</arg>. Without any arguments, all metadata is displayed.</p>
<p>When <arg>value</arg> is given, <cmd>pw-metadata</cmd> will set the
metadata for <arg>id</arg> and <arg>key</arg> to <arg>value</arg> and
an optional <arg>type</arg>.</p>
</description>
<options>
<option>
<p><opt>-r | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to use. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<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>-m | --monitor</opt></p>
<optdesc><p>Keeps running and log the changes to the metadata.</p></optdesc>
</option>
<option>
<p><opt>-d | --delete</opt></p>
<optdesc>
<p>Delete all metadata for <arg>id</arg> or for the
specified <arg>key</arg> of object <arg>id</arg></p>
<p>Without any option, all metadata is removed</p>
</optdesc>
</option>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-mon" section="1"/>,
<manref name="pw-cli" section="1"/>,
</p>
</section>
</manpage>

51
man/pw-mididump.1.rst.in Normal file
View file

@ -0,0 +1,51 @@
.. This file is part of PipeWire.
pw-mididump
###########
----------------------
The PipeWire MIDI dump
----------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-mididump** [*options*] [*FILE*]
DESCRIPTION
===========
Dump MIDI messages to stdout.
When a MIDI file is given, the events inside the file are printed.
When no file is given, **pw-mididump** creates a PipeWire
MIDI input stream and will print all MIDI events received on the port to
stdout.
OPTIONS
=======
-r | --remote=NAME
The name the remote instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.
-h | --help
Show help.
--version
Show version information.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,
``pw-cat(1)``,

View file

@ -1,58 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-mididump" section="1" desc="The PipeWire midi dump">
<synopsis>
<cmd>pw-mididump [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
</synopsis>
<description>
<p>Dump midi messages to stdout.</p>
<p>When a midi file is given, the events inside the file are printed.</p>
<p>When no file is given, <cmd>pw-mididump</cmd> creates a PipeWire
midi input stream and will print all midi events received on the port to
stdout.</p>
</description>
<options>
<option>
<p><opt>-r | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<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>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
<manref name="pw-cat" section="1"/>,
</p>
</section>
</manpage>

44
man/pw-mon.1.rst.in Normal file
View file

@ -0,0 +1,44 @@
.. This file is part of PipeWire.
pw-mon
######
--------------------
The PipeWire monitor
--------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-mon** [*options*]
DESCRIPTION
===========
Monitor objects on the PipeWire instance.
OPTIONS
=======
-r | --remote=NAME
The name the *remote* instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.
-h | --help
Show help.
--version
Show version information.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,

View file

@ -1,51 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-mon" section="1" desc="The PipeWire monitor">
<synopsis>
<cmd>pw-mon [<arg>options</arg>]</cmd>
</synopsis>
<description>
<p>Monitor objects on the PipeWire instance.</p>
</description>
<options>
<option>
<p><opt>-r | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<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>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
</p>
</section>
</manpage>

56
man/pw-profiler.1.rst.in Normal file
View file

@ -0,0 +1,56 @@
.. This file is part of PipeWire.
pw-profiler
###########
---------------------
The PipeWire profiler
---------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-profiler** [*options*]
DESCRIPTION
===========
Start profiling a PipeWire instance.
If the server has the profiler module loaded, this program will
connect to it and log the profiler data. Profiler data contains
times and durations when processing nodes and devices started and
completed.
When this program is stopped, a set of **gnuplot** files and a script to generate
SVG files from the .plot files is generated, along with a .html file to
visualize the profiling results in a browser.
OPTIONS
=======
-r | --remote=NAME
The name the remote instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.
-h | --help
Show help.
--version
Show version information.
-o | --output=FILE
Profiler output name (default "profiler.log").
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire(1)``,

View file

@ -1,69 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
<!--
This file is part of PipeWire.
-->
<manpage name="pw-profiler" section="1" desc="The PipeWire profiler">
<synopsis>
<cmd>pw-profiler [<arg>options</arg>]</cmd>
</synopsis>
<description>
<p>Start profiling a PipeWire instance.</p>
<p>If the server has the profiler module loaded, this program will
connect to it and log the profiler data. Profiler data contains
times and durations when processing nodes and devices started and
completed.
</p>
<p>
When this program is stopped, a set of gnuplot files and a script to generate
SVG files from the .plot files is generated, along with a .html file to
visualize the profiling results in a browser.
</p>
</description>
<options>
<option>
<p><opt>-r | --remote</opt><arg>=NAME</arg></p>
<optdesc><p>The name the remote instance to monitor. If left unspecified,
a connection is made to the default PipeWire instance.</p></optdesc>
</option>
<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>-o | --output</opt><arg>=FILE</arg></p>
<optdesc><p>Profiler output name (default "profiler.log").</p></optdesc>
</option>
</options>
<section name="Authors">
<p>The PipeWire Developers &lt;@PACKAGE_BUGREPORT@&gt;; PipeWire is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="pipewire" section="1"/>,
</p>
</section>
</manpage>

View file

@ -442,10 +442,15 @@ if doxygen.found()
subdir('doc')
endif
xmltoman = find_program('xmltoman', required : get_option('man'))
summary({'Manpage generation': xmltoman.found()}, bool_yn: true)
if xmltoman.found()
subdir('man')
if not get_option('man').disabled()
rst2man = find_program('rst2man', required: false)
if not rst2man.found()
rst2man = find_program('rst2man.py', required: get_option('man'))
endif
summary({'Manpage generation': rst2man.found()}, bool_yn: true)
if rst2man.found()
subdir('man')
endif
endif
setenv = find_program('pw-uninstalled.sh')