Skip to content

Move PipeWire Server into a Headless Session

Ole Binder requested to merge dev-pipewire-server into main

This merge request proposes moving the PipeWire server session, currently running in the host's user space, to a headless session running on the host machine. The engine-core client will connect to the server via a bind volume pipewire_socket. The headless session will start automatically when the host boots, running in the background without requiring any user startup or input. This change will enhance the system's startup automation and reliability.

Engine-core will automatically attempt to connect to four ports when started, configured via environment variables. These port names can be obtained with pw-link -io:

# an example config
AURA_ENGINE_OUTPUT_CHANNEL_LEFT=alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FL
AURA_ENGINE_OUTPUT_CHANNEL_RIGHT=alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FR
AURA_ENGINE_INPUT_CHANNEL_LEFT=alsa_output.pci-0000_00_1f.3.analog-stereo:playback_FL
AURA_ENGINE_INPUT_CHANNEL_RIGHT=alsa_output.pci-0000_00_1f.3.analog-stereo:playback_FR

If engine-core cannot connect to these ports, it will start nonetheless, waiting for the user to connect its input and output ports via the CLI or a GUI.

Closes #80 (closed), #67 (closed), #68 (closed),

Merge request reports