# ALSA monitor config file for PipeWire version "0.3.28" # # saivert on #pipewire made this 2021-05-23 around 15 Z # based on pw-cli dump short node && pw-cli dump short device # save as ~/.config/pipewire/media-session.d/alsa-monitor.conf # then restart pipewire and pipewire-pulse like so: systemctl --user restart pipewire pipewire-pulse 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. It is an array of # properties that all need to match the regexp. If any of the # matches work, the actions are executed for the object. 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 = false # 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" } } } # Begin customized config section { matches = [ { # This matches your USB headset device.name = "alsa_card.usb-Logitech_Logitech_USB_Headset-00" } ] actions = { # Actions can update properties on the matched object. update-props = { api.alsa.soft-mixer = true } } } #End customized config section { 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 #api.alsa.period-size = 1024 #api.alsa.headroom = 0 #api.alsa.start-delay = 0 #api.alsa.disable-mmap = false #api.alsa.disable-batch = false #api.alsa.use-chmap = false } } } ]