Skip to content

config/media/pipewire.md: document use of wireplumber#738

Closed
ahesford wants to merge 1 commit into
void-linux:masterfrom
ahesford:pipewire
Closed

config/media/pipewire.md: document use of wireplumber#738
ahesford wants to merge 1 commit into
void-linux:masterfrom
ahesford:pipewire

Conversation

@ahesford
Copy link
Copy Markdown
Member

When we actually remove pipewire-media-session and don't override context.exec in the default pipewire.conf, the configuration part will need to be rewritten.

@Vaelatern
Copy link
Copy Markdown
Member

Could we maybe also have a brief description of "Why"? I don't know why these things matter and I'm curious.

Comment thread src/config/media/pipewire.md Outdated
@ahesford
Copy link
Copy Markdown
Member Author

@Vaelatern I've added a new introductory sentence to this section. Does that provide sufficient context?

@Vaelatern
Copy link
Copy Markdown
Member

Yes, thank you, that helps!

@oreo639
Copy link
Copy Markdown
Member

oreo639 commented Jan 26, 2023

Also, I don't think there is a way to guarantee that the wireplumber.desktop script runs after pipewire. (correct me if I am wrong)

The previous PR changed the pipewire docs to reccomend using /etc/pipewire/pipewire.conf.d/ and ~/.config/pipewire/pipewire.conf.d/ rather than changing the /etc/pipewire/pipewire.conf:
#702

(Also, there is /usr/share/pipewire/pipewire.conf.d/ which could be used by packages if necessary.)
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire

Although keep in mind:

Note!! Properties will override the previous ones, array entries will be appended. It is not possible yet to change
or remove existing array entries. This only applied to the first level objects, arrays in properties will be overwritten as usual.

Comment thread src/config/media/pipewire.md Outdated
Comment on lines +81 to +85
> `pipewire` and `wireplumber` from a `.xinitrc` script, it may be necessary to
> create a new shell script suitable for passing to `dbus-run-session` that will
> launch `pipewire`, `wireplumber` and the window manager or desktop environment
> in a common D-Bus session.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really don't like recommending a solution like this, people will be confused and go to ask in #voidlinux a lot. We should at least say suggest people to prefer using their wm's startup scripts over xinitrc if this is an issue.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about I strike the "when launching from .xinitrc" paragraph (to avoid endorsing that as a solution) and change the note to

In its default configuration, wireplumber requires an active D-Bus session. When using Desktop Application Autostart symlinks, it should be sufficient to wrap the launch of a window manager or desktop environment in dbus-run-session. Users of window managers that do not respect the autostart mechanism should consult upstream documentation regarding the process for automatically starting programs at launch.

At some point, we have to be willing to tell people that this isn't Ubuntu and they might need to do some learning on their own.

@ahesford
Copy link
Copy Markdown
Member Author

ahesford commented Jan 26, 2023

We should not ship configs that enable wireplumber by default when the default is to not do that. It will eventually land us in the same mess we are now trying to resolve.

I'm currently using two /etc/pipewire/pipewire.conf.d snippets to launch pipewire-pulse and wireplumber in context.exec and the concatenation works fine. We can't recommend this solution until we drop the pipewire-media-session from our default configs because launching two session managers leads to failure. Until then, it doesn't make sense to tell people to copy the system config and edit that, just so they can later add configuration snippets alongside the overridden config.

@cinerea0
Copy link
Copy Markdown
Contributor

If/when use of pipewire.conf.d directories is documented in the handbook, would it make sense for it to say the order in which the configs are sourced?

@ahesford
Copy link
Copy Markdown
Member Author

If/when use of pipewire.conf.d directories is documented in the handbook, would it make sense for it to say the order in which the configs are sourced?

No. That information is already described in pipewire.conf(5) so there is no need to reproduce it here.

@ahesford
Copy link
Copy Markdown
Member Author

I rewrote some things to prefer custom configuration edits that will make pipewire launch wireplumber. It also notes the wireplumber.desktop file and the ordering issues surrounding its use, but should give people enough hints to find their way around alternatives if they don't want to make the config change.

sources and sinks as well as enforcing routing policy. Without a session
manager, PipeWire will not function. The reference
[`pipewire-media-session`](https://gitlab.freedesktop.org/pipewire/media-session)
package was originally provided and, in Void, configured to run by default to
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this sounds better?

Suggested change
package was originally provided and, in Void, configured to run by default to
package was originally provided and, in Void and configured to run by default to

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reworded to

Suggested change
package was originally provided and, in Void, configured to run by default to
package was originally provided in the Void `pipewire` package and configured to run by default to

@ahesford ahesford closed this in 65f04e9 Feb 3, 2023
@ahesford ahesford deleted the pipewire branch February 3, 2023 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants