pipewire(1)
๐ pipewire(1) โ the PipeWire media server, explained by your fave Unix bestie ๐
okay so you opened the pipewire(1) manual page from the General Commands Manual section?? periodt, let's go. this is the daemon itself, the main character, the thing that makes your audio not be a dumpster fire. sit down, hydrate, let's read it together ๐ซถ
โจ NAME โจ
pipewire โ The PipeWire media server. that's it, that's the girl ๐
โจ SYNOPSIS โจ
pipewire [options]
likeโฆ that's the whole invocation. no positional args, no drama. just vibes and options โจ
โจ DESCRIPTION โจ
So PipeWire is a service that facilitates sharing of multimedia content between devices and applications. that's the โจofficialโจ way of saying: it's the friend in the group chat who makes sure everyone's audio and video actually reaches everyone else, no matter which app is screaming. a social butterfly, truly. main character energy fr fr ๐
And important: the pipewire daemon reads a config file โ and all the tea about that config file lives in the pipewire.conf(5) manual page. go read it, bestie, it's the lore ๐ญ
โจ OPTIONS โจ
one bullet per option, exactly as they exist, no cutting corners:
-h,--helpโ shows you the help. your little flashlight in the dark ๐ฅ-v,--verboseโ bumps the verbosity up by exactly one level. and here's the cute part: you can specify this option multiple times to keep climbing the ladder of chatter. stack it like bracelets โจ--versionโ shows version information. the "who even am I" option ๐-c,--config=FILEโ loads the config file you point at. the default?pipewire.conf. (Original: Default:pipewire.conf.) ๐-P,--properties=PROPSโ adds the properties you give it, as a SPA JSON object, straight into the context. fancy ๐
โจ RUNTIME SETTINGS โจ
plot twist: a PipeWire daemon also exposes a settings metadata object, and you can use it to change some settings at runtime. no restart, no drama, we love a flexible queen ๐
ngl, normally these settings can bypass any of the restrictions listed in the config options above โ yes, even the ones about quantum and samplerate values. so be mindful, bestie, this is the "you have power, use it responsibly" section ๐
you tweak them with pw-metadata(1) like so:
pw-metadata -n settings # list settings
pw-metadata -n settings 0 # list server settings
pw-metadata -n settings 0 log.level 2 # modify a server setting
and here are the settings, all of them, no skips:
log.level = INTEGERโ changes the log level of the PipeWire daemon. turn the volume knob on the diary entries ๐clock.rate = INTEGERโ the default samplerate.clock.allowed-rates = [ RATE1 RATE2... ]โ the allowed samplerates. a lil guest list ๐๏ธclock.force-rate = INTEGERโ temporarily forces the graph to operate in a fixed sample rate. and ooh: both DSP processing and devices will switch to the new rate immediately. running streams (PulseAudio, native and ALSA applications) will automatically resample to match the new rate. no cap, it's that fast โจ
set the value to 0 to allow the sample rate to vary again. (the "okay go be free" switch ๐ฆ)
clock.quantum = INTEGERโ the default quantum (buffer size).clock.min-quantum = INTEGERโ smallest quantum to be used.clock.max-quantum = INTEGERโ largest quantum to be used.clock.force-quantum = INTEGERโ temporarily force the graph to operate in a fixed quantum.
set the value to 0 to allow the quantum to vary again. same energy, different knob ๐
โจ ENVIRONMENT VARIABLES โจ
the environment variables section, aka the vibes you can set before launching. every single one is here, organized exactly like the original ๐
Socket directories
PIPEWIRE_RUNTIME_DIRXDG_RUNTIME_DIRUSERPROFILEโ used to find the PipeWire socket on the server (and native clients). the "where u at" GPS ๐บ๏ธPIPEWIRE_COREโ name of the socket to make. you're the creator here ๐PIPEWIRE_REMOTEโ name of the socket to connect to. you're the guest here ๐ซถPIPEWIRE_DAEMONโ if set totrue, then the process becomes a new PipeWire server. glow-up activated ๐
Config directories, config file name and prefix
PIPEWIRE_CONFIG_DIRXDG_CONFIG_HOMEHOMEโ used to find the config file directories. yes girl,$HOMEis doing the legwork ๐PIPEWIRE_CONFIG_PREFIXPIPEWIRE_CONFIG_NAMEโ used to override the application provided config prefix and config name. โจPIPEWIRE_NO_CONFIGโ enables (false) or disables (true) overriding on the default configuration. read it twice, the truth is inverted, iykyk ๐ญ
Context information
as part of a client context, the following info gets collected from environment variables and placed right into the context properties:
LANGโ the current language, inapplication.language. ๐ฃ๏ธXDG_SESSION_IDโ set as theapplication.process.session-idproperty.DISPLAYโ is set as thewindow.x11.displayproperty.
Modules
PIPEWIRE_MODULE_DIRโ sets the directory where to find PipeWire modules. ๐ฆSPA_SUPPORT_LIBโ the name of the SPA support lib to load. this can be used to switch to an alternative support library โ for example, to run on the EVL realtime kernel. hot-swap behavior, obsessed ๐
Logging options
JOURNAL_STREAMโ is used to parse the stream used for the journal. this is usually configured by systemd. โจPIPEWIRE_LOG_LINEโ enables the logging of line numbers. defaulttrue. ๐ขPIPEWIRE_LOG_TIMESTAMPโ logging timestamp type:"local","monotonic","realtime","none". default"local". โฐPIPEWIRE_LOGโ specifies a log file to use instead of the default logger. ๐PIPEWIRE_LOG_SYSTEMDโ enables the use of systemd for the logger, defaulttrue.
Other settings
PIPEWIRE_CPUโ selects the CPU and flags. this is a bitmask of any of the CPU flags. ๐งPIPEWIRE_VMโ selects the Virtual Machine PipeWire is running on. this can be any of the VM types. โ๏ธDISABLE_RTKITโ disables the use of RTKit or the Realtime Portal for realtime scheduling. ๐ซNO_COLORโ disables the use of colors in the console output. (a life without colorโฆ devastating, but valid ๐จ)
Debugging options
PIPEWIRE_DLCLOSEโ enables (true) or disables (false) the use ofdlclosewhen a shared library is no longer in use. and here's the pro tip straight from the source: when debugging, it might make sense to disabledlcloseto be able to get debugging symbols from the object. ๐
Stream options
PIPEWIRE_NODEโ makes a stream connect to a specificobject.serialornode.name. ๐PIPEWIRE_PROPSโ adds extra properties to a stream or filter. ๐PIPEWIRE_QUANTUMโ forces a specific rate and buffer-size for the stream or filter. ๐PIPEWIRE_LATENCYโ sets a specific latency for a stream or filter. heads up: this is only a suggestion but the configured latency will not be larger. ๐PIPEWIRE_RATEโ sets a rate for a stream or filter. also only a suggestion. the rate will be switched when the graph is idle. ๐ดPIPEWIRE_AUTOCONNECTโ overrides the default stream autoconnect settings. ๐
Plugin options
SPA_PLUGIN_DIRโ is used to locate SPA plugins. ๐งฉSPA_DATA_DIRโ is used to locate plugin specific config files. this is used by the bluetooth plugin currently to locate the quirks database. ๐ฆทSPA_DEBUGโ set the log level for SPA plugins. this is usually controlled by thePIPEWIRE_DEBUGvariable when the plugins are managed by PipeWire, but some standalone tools (likespa-inspect) uses this variable. ๐ACP_BUILDDIRโ if set, the ACP profiles are loaded from the builddir. ๐๏ธACP_PATHS_DIRACP_PROFILES_DIRโ used to locate the ACP paths and profile directories respectively. ๐๏ธLADSPA_PATHโ comma separated list of directories where the ladspa plugins can be found. ๐๏ธLIBJACK_PATHโ directory where thejack1orjack2libjack.socan be found. ๐ท
โจ AUTHORS โจ
The PipeWire Developers โ that's the whole squad, no individual credits, a true collective ๐
<https://gitlab.freedesktop.org/pipewire/pipewire/issues> โ that's where the issues live, go say hi ๐
and PipeWire is available from <https://pipewire.org> โ the mothership ๐
โจ SEE ALSO โจ
go read these too, bestie, they're the extended universe:
pw-top(1), pw-dump(1), pw-mon(1), pw-cat(1), pw-cli(1), libpipewire-modules(7)
and that's the whole page, no skips, no cuts, every option and env var accounted for. you're basically a PipeWire scholar now, no cap ๐
sign-off time: this whole thing is PipeWire, version 1.6.11, and it's the pipewire(1) page, okay bye bestie, go make some noise ๐
โจ๐๐ฆ๐ธ๐ซถ
๐ฆ where this page comes from
- fedora 44: pipewire 1.6.11-1.fc44 ยท MIT
- fedora 44: pipewire 1.6.11-1.fc44 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms