diff --git a/conf/pipewire/media-session.d/alsa-monitor.conf b/conf/pipewire/media-session.d/alsa-monitor.conf new file mode 100644 index 00000000..cfd940e7 --- /dev/null +++ b/conf/pipewire/media-session.d/alsa-monitor.conf @@ -0,0 +1,135 @@ +# 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 + } + } + } +]