Configuration files should be documented properly.
Because I didn't know how to use pulse.rules, I had this nonfunctional configuration.
~/.config/pipewire/pipewire-pulse.conf.d/10-local.conf
pulse.rules = [
{
matches = [
{ media.class = Stream/Output/Audio }
]
actions = { update-props = { target.object = default-sink } }
}
]
I realized pipewire-pulse.conf cannot set target.object in pulse.rules and can have stream.rules and stream.properties. I replaced pulse.rules with stream.rules. I didn't know I had to maintain stream.rules in pipewire-pulse.conf as well as client.conf.
The documentation should clearly document various sections in pipewire-pulse.conf and what exactly can go into each section of pipewire-pulse.conf.