LIBPIPEWIRE-MODULE-RT(7)
β¨ libpipewire-module-rt β¨
okay bestie, welcome to the manual page for libpipewire-module-rt(7) β it lives in the Miscellaneous Information Manual section, and it's literally the module that hands out real-time priorities like they're VIP passes. ποΈβ¨
π NAME π
libpipewire-module-rt β RT π
π¦ DESCRIPTION π¦
so the rt modules? their whole thing is giving real-time priorities to processing threads. that's it, that's the job. π
It uses the operating system's scheduler to enable realtime scheduling for certain threads, all so your low latency audio processing can slay without stuttering. π§β¨
but WAIT β this requiresRLIMIT_RTPRIOto be set to a value that's equal to this module'srt.prioparameter or higher. no cap. π
Most distros will come with some package that configures this for certain groups or users β so like, check first, bestie. π«Ά
If this is not set up and DBus is available, then this module will fall back to using the Portal Realtime DBus API or RTKit. iconic backup plan honestly. π
π MODULE NAME π
libpipewire-module-rt
π MODULE OPTIONS π
nice.levelβ the nice value set for the application thread. it improves performance of the communication with the pipewire daemon. πrt.prioβ the realtime priority of the data thread. higher values are higher priority. β¬οΈπ₯rt.time.soft,rt.time.hardβ the amount of CPU time an RT thread can consume without doing any blocking calls before the kernel kills the thread. yes, literally murders it. this is a safety measure to avoid lockups of the complete system when some thread consumes 100%. ππ¨rlimits.enabledβ enable the use of rtlimits, defaulttrue. βrtportal.enabledβ enable the use of realtime portal, defaulttrue. βrtkit.enabledβ enable the use of rtkit, defaulttrue. βuclamp.minβ the minimum utilisation value the scheduler should consider. πuclamp.maxβ the maximum utilisation value the scheduler should consider. π
The nice level is by default set to an invalid value so that clients don't automatically have the nice level raised. protect the vibes, don't touch the nice level without asking π
The PipeWire server processes are explicitly configured with a valid nice level.
π§ CONFIG OVERRIDE π§
A module.rt.args config section can be added to override the module arguments. yes ma'am, you can just drop in your own. π
# ~/.config/pipewire/pipewire.conf.d/my-rt-args.conf
module.rt.args = {
#nice.level = 22
}
πΈ EXAMPLE CONFIGURATION πΈ
here's the whole look, head to toe π:
context.modules = [
{ name = libpipewire-module-rt
args = {
#nice.level = 20
#rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
#rlimits.enabled = true
#rtportal.enabled = true
#rtkit.enabled = true
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}
]
and that's the whole page bestie, you ate it fr fr π β¨ periodt π
cute little sign-off: this is from PipeWire version1.6.11, and yeah it'slibpipew...module-rt(7)β that's the truncated one, iykyk ππ«Ά
π¦ where this page comes from
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms