context.modules = [ { name = libpipewire-module-loopback args = { node.name = "mark_null_sink" node.description = "Mark Null" capture.props = { node.description = "Mark Null" media.class = "Audio/Sink" audio.position = [ FL FR ] } playback.props = { node.description = "Mark Null" audio.position = [ RL RR ] node.dont-reconnect = true stream.dont-remix = true node.passive = true } } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_out_2" node.description = "Out 2" combine.latency-compensate = false combine.props = { media.name = "Out 2" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ # any of the items in matches needs to match, if one does, # actions are emitted. { # all keys must match the value. ! negates. ~ starts regex. node.description = "~Starship.*" media.class = "Audio/Sink" } { node.description = "~USB Condenser Microphone.*" media.class = "Audio/Sink" } { node.description = "~Built-in Audio.*" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_out_5" node.description = "Out 5" combine.latency-compensate = false combine.props = { media.name = "Out 5" audio.position = [ FL FR FC LFE SL SR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ # any of the items in matches needs to match, if one does, # actions are emitted. { # all keys must match the value. ! negates. ~ starts regex. # node.description = "~TU116.*" node.description = "~.*(HDMI|DP).*Surround 5.1.*" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_game_combined" node.description = "Game Combined" combine.latency-compensate = false combine.props = { media.name = "Game Combined" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_game_2" node.description = "Game 2" combine.latency-compensate = false combine.props = { media.name = "Game 2" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_game_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_game_5" node.description = "Game 5" combine.latency-compensate = false combine.props = { media.name = "Game 5" audio.position = [ FL FR FC LFE SL SR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_game_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_comms_combined" node.description = "Comms Combined" combine.latency-compensate = false combine.props = { media.name = "Comms Combined" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_comms_2" node.description = "Comms 2" combine.latency-compensate = false combine.props = { media.name = "Comms 2" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_comms_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_comms_5" node.description = "Comms 5" combine.latency-compensate = false combine.props = { media.name = "Comms 5" audio.position = [ FL FR FC LFE SL SR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_comms_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_misc_combined" node.description = "Misc Combined" combine.latency-compensate = false combine.props = { media.name = "Misc Combined" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_misc_2" node.description = "Misc 2" combine.latency-compensate = false combine.props = { media.name = "Misc 2" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_misc_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_misc_5" node.description = "Misc 5" combine.latency-compensate = false combine.props = { media.name = "Misc 5" audio.position = [ FL FR FC LFE SL SR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_misc_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_music_combined" node.description = "Music Combined" combine.latency-compensate = false combine.props = { media.name = "Music Combined" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_music_2" node.description = "Music 2" combine.latency-compensate = false combine.props = { media.name = "Music 2" audio.position = [ FL FR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_music_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } { name = libpipewire-module-combine-stream args = { combine.mode = sink node.name = "mark_combine_music_5" node.description = "Music 5" combine.latency-compensate = false combine.props = { media.name = "Music 5" audio.position = [ FL FR FC LFE SL SR ] } stream.props = { stream.dont-remix = true } stream.rules = [ { matches = [ { node.name = "mark_combine_music_combined" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_2" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR ] } } } { matches = [ { node.name = "mark_combine_out_5" media.class = "Audio/Sink" } ] actions = { create-stream = { combine.audio.position = [ FL FR FC LFE SL SR ] audio.position = [ FL FR FC LFE SL SR ] } } } ] } } ]