diff --git a/hosts/scarab/default.nix b/hosts/scarab/default.nix index 6316917..7bae50c 100644 --- a/hosts/scarab/default.nix +++ b/hosts/scarab/default.nix @@ -56,14 +56,50 @@ in unmanaged = [ "rndis0" "usb0" ]; }; - services.pipewire.wireplumber.configPackages = [ + /*services.pipewire.wireplumber.configPackages = [ (pkgs.writeTextDir "share/wireplumber/quailcum.lua.d/51-qcom-sdm845.lua" '' ${builtins.readFile (pkgs.fetchurl { url = "https://gitlab.com/postmarketOS/pmaports/-/raw/0aa9524204e9c9c002c860b87c972bc2ebf025f3/device/community/soc-qcom-sdm845/51-qcom-sdm845.lua"; hash = "sha256-56oNJJyuZZe1Iig1xskDuyazw3PbRZtmU/YRFUTqjwk="; })} '') - ]; + ];*/ + + services.pipewire.wireplumber.configPackages = [ + (pkgs.writeTextDir "share/wireplumber/quailcum.lua.d/51-qcom-sdm845.lua" '' + -- PipeWire's S24LE default audio format is broken in the kernel driver + alsa_monitor.rules = [ + { + matches = { + { "node.name" = "alsa_output.*.HiFi*__sink" }, + { "node.name" = "alsa_input.*.HiFi*__source" } + ] + actions = { + update-props = { + audio.format = "S16LE", + audio.rate = 48000, + api.alsa.period-size = 4096, + api.alsa.period-num = 6, + api.alsa.headroom = 512, + }, + } + } + }] + + -- Disable suspend for Voice Call devices + alsa_monitor.rules = [ + { + matches = { + { "node.name" = "alsa_output.*.Voice_Call*__sink" }, + { "node.name" ="alsa_input.*.Voice_Call*__source" } + } + actions.update=props = { + audio.format = "S16LE", + session.suspend-timeout-seconds = 0, + } + }] + '') + ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "oneplus-sdm845-firmware"