diff --git a/config/wireplumber/wireplumber.conf.d/kef-lsx-no-suspend.conf b/config/wireplumber/wireplumber.conf.d/kef-lsx-no-suspend.conf new file mode 100644 index 00000000..02955660 --- /dev/null +++ b/config/wireplumber/wireplumber.conf.d/kef-lsx-no-suspend.conf @@ -0,0 +1,19 @@ +## Never suspend the KEF LSX II LT USB sink. +## The speaker's USB firmware stops answering control requests when the host +## stops the stream after idle (usb_set_interface -110), and only a replug +## recovers it. Keeping the stream open avoids the trigger. + +monitor.alsa.rules = [ + { + matches = [ + { + node.name = "~alsa_output.usb-KEF_LSX_II_LT.*" + } + ] + actions = { + update-props = { + session.suspend-timeout-seconds = 0 + } + } + } +] diff --git a/migrations/1789130779.sh b/migrations/1789130779.sh new file mode 100644 index 00000000..56d9fe20 --- /dev/null +++ b/migrations/1789130779.sh @@ -0,0 +1,9 @@ +echo "Keep the KEF LSX II LT USB sink from suspending" + +conf="wireplumber/wireplumber.conf.d/kef-lsx-no-suspend.conf" + +if [[ ! -f "$HOME/.config/$conf" ]]; then + omarchy-refresh-config "$conf" + # WirePlumber only reads conf.d at startup; restart it if it is running. + systemctl --user try-restart wireplumber.service 2>/dev/null || true +fi