libpipew...k-tunnel(7)
π libpipew...k-tunnel(7) β Miscellaneous Information Manual π
okay bestie, sit DOWN, we're talking about libpipewire-module-jack-tunnel from the PipeWire manual, section 7. yes it's a real manual page, yes it has a truncated name in the header like that, no I will not be fixing it, it's iconic. π«Ά
β¨ NAME β¨
libpipewire-module-jack-tunnel β JACK Tunnel π
π DESCRIPTION π
so the jack-tunnel module literally hands you a source or a sink that tunnels all the audio to a JACK server. all of it. every last bit. it's giving "I have a bridge and I'm not afraid to use it" π
and like, normally you don't even summon this thing by hand β it's usually used together with JACK DBus detect, which will automatically load the tunnel with the right parameters based on dbus information. so it's the friend that shows up already knowing everyone's names. main character energy fr fr β¨
πΈ MODULE NAME πΈ
libpipewire-module-jack-tunnel
π MODULE OPTIONS π
jack.libraryβ the libjack to load. by defaultlibjack.so.0is searched inLIBJACK_PATHdirectories and then some standard library paths. lowkey it goes hunting for it πjack.serverβ the name of the JACK server to tunnel to. tell it where your girl lives πΊοΈjack.client-nameβ the name of the JACK client.jack.connectβ if jack ports should be connected automatically. can also be placed per stream.jack.connect-audioβ an array of audio ports to connect to. can also be placed per stream. an empty array will not connect anything, even whenjack.connectis true. yes, empty means empty, no cap πjack.connect-midiβ an array of midi ports to connect to. can also be placed per stream. an empty array will not connect anything, even whenjack.connectis true. same rules bestie, no exceptions πtunnel.modeβ the tunnel mode,sink|source|duplex, defaultduplex. pick your vibe β¨midi.portsβ the number of midi ports. can also be added to the stream props.source.propsβ extra properties for the source filter.sink.propsβ extra properties for the sink filter.
π GENERAL OPTIONS π
options with well-known behavior. the classics, the icons, the ones everybody already knows at this point π
remote.nameaudio.channelsaudio.layoutaudio.positionnode.namenode.descriptionnode.groupnode.virtualmedia.classtarget.objectto specify the remotenode.nameorserial.idto link to
π¦ EXAMPLE CONFIGURATION OF A DUPLEX SINK/SOURCE π¦
here's the whole thing, copy it, it's literally right here, obsess with me π₯Ή
# ~/.config/pipewire/pipewire.conf.d/my-jack-tunnel.conf
context.modules = [
{ name = libpipewire-module-jack-tunnel
args = {
#jack.library = libjack.so.0
#jack.server = null
#jack.client-name = PipeWire
#jack.connect = true
#jack.connect-audio = [ playback_1 playback_2 ]
#jack.connect-midi = [ midi_playback_1 ]
#tunnel.mode = duplex
#midi.ports = 0
#audio.channels = 2
#audio.position = [ FL FR ]
source.props = {
# extra sink properties
}
sink.props = {
# extra sink properties
}
}
}
]
heads up bestie: all those lines starting with # are commented out, that's on purpose, uncomment the ones you want and leave the rest alone π«Ά
and that's the whole page! this one came from PipeWire, version 1.6.11 β shoutout to the PipeWire girlies, y'all ate and left no crumbs ππ
π¦ 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