refactor(vr): route headset audio with a WirePlumber hook

A default-node hook selects wivrn.sink/wivrn.source whenever they exist,
so the polling wivrn-audio.nu unit, its saved state and `just vr-audio`
go away. Streams follow via linking.follow-default-target.

Assisted-by: Claude Code (claude-opus-5-5)
This commit is contained in:
Ryan Yin authored and ryan4yin | 二花 committed 2026-11-01 11:55:14 -06:00
1 parent be592ae75c
commit c732f3b9bb
4 files changed
+42 -161

No files matched your search

+2 -12
View File
@@ -366,26 +366,16 @@ game:
del-failed:
kubectl delete pod --all-namespaces --field-selector="status.phase==Failed"
# Start PC VR on idols-ai and route desktop audio to the headset.
# Start PC VR on idols-ai; WirePlumber routes audio to the headset once it connects.
[linux]
[group('vr')]
vr:
systemctl --user start wivrn.service
systemctl --user stop wivrn-audio.service | complete | ignore
systemd-run --user --collect --unit=wivrn-audio nu {{absolute_path("scripts/wivrn-audio.nu")}} switch --timeout 600
# Route audio to a headset that is connected right now.
[linux]
[group('vr')]
vr-audio:
nu {{absolute_path("scripts/wivrn-audio.nu")}} switch --timeout 60
# Stop PC VR when finished and restore the previous audio devices.
# Stop PC VR when finished.
[linux]
[group('vr')]
vr-stop:
systemctl --user stop wivrn-audio.service | complete | ignore
nu {{absolute_path("scripts/wivrn-audio.nu")}} restore
systemctl --user stop wivrn.service
# Show PC VR service status.