# ALSA monitor config file for PipeWire version 0.4.1 # # # Copy and edit this file in /etc/pipewire/media-session.d/ # for system-wide changes or in # ~/.config/pipewire/media-session.d/ for local changes. properties = { # Create a JACK device. This is not enabled by default because # it requires that the PipeWire JACK replacement libraries are # not used by the session manager, in order to be able to # connect to the real JACK server. #alsa.jack-device = false # Reserve devices. #alsa.reserve = true } rules = [ # An array of matches/actions to evaluate. { # Rules for matching a device or node. Each dictionary in this array # specifies the property to match as key and a string or regex match # as value. A successful match requires all dictionary keys (i.e. # properties) to match. # # Actions are are executed for the object if at least one successful # match exists. # # Regular expressions are prefixed with the ~ (tilde) character, # otherwise a standard string comparison is used. # The special value "null" matches against empty properties. matches = [ { # This matches all cards. These are regular expressions # so "." matches one character and ".*" matches many. device.name = "~alsa_card.*" } ] actions = { # Actions can update properties on the matched object. update-props = { # Use ALSA-Card-Profile devices. They use UCM or # the profile configuration to configure the device # and mixer settings. api.alsa.use-acp = true # Use UCM instead of profile when available. Can be # disabled to skip trying to use the UCM profile. #api.alsa.use-ucm = true # Don't use the hardware mixer for volume control. It # will only use software volume. The mixer is still used # to mute unused paths based on the selected port. api.alsa.soft-mixer = true # Ignore decibel settings of the driver. Can be used to # work around buggy drivers that report wrong values. #api.alsa.ignore-dB = false # The profile set to use for the device. Usually this is # "default.conf" but can be changed with a udev rule # or here. #device.profile-set = "profileset-name.conf" # The default active profile. Is by default set to "Off". #device.profile = "default profile name" # Automatically select the best profile. This is the # highest priority available profile. This is disabled # here and instead implemented in the session manager # where it can save and load previous preferences. api.acp.auto-profile = false # Automatically switch to the highest priority available # port. This is disabled here and implemented in the # session manager instead. api.acp.auto-port = false # Other properties can be set here. #device.nick = "My Device" } } } { matches = [ { # Matches all sources. These are regular expressions # so "." matches one character and ".*" matches many. node.name = "~alsa_input.*" } { # Matches all sinks. node.name = "~alsa_output.*" } ] actions = { update-props = { #node.nick = "My Node" #node.nick = null #priority.driver = 100 #priority.session = 100 node.pause-on-idle = false #resample.quality = 4 #channelmix.normalize = false #channelmix.mix-lfe = false #audio.channels = 2 #audio.format = "S16LE" #audio.rate = 44100 #audio.position = "FL,FR" #session.suspend-timeout-seconds = 5 # 0 disables suspend #monitor.channel-volumes = false #latency.internal.rate = 0 # internal latency in samples #latency.internal.ns = 0 # internal latency in nanoseconds #api.alsa.period-size = 1024 api.alsa.headroom = 1024 #api.alsa.start-delay = 0 #api.alsa.disable-mmap = false #api.alsa.disable-batch = false #api.alsa.use-chmap = false #iec958.codecs = [ PCM DTS AC3 MPEG MPEG2-AAC EAC3 TrueHD DTS-HD ] } } } ]