Hey folks getting a bit stuck here in adding a some configuration for pipewire/pulseaudio.
I’ve an SteelSeries Arctis 7 and only the input is detected when I’m connecting it via USB.
Luckily the community(Github) as already fixed the problem some years ago and I’m trying to integrate into my NixOS configuration. Where I’m getting stuck and that’s due to my lack of knowledge on how Pipewire/Pulseaudio work internally, is adding those configurations.
I’ve tried different things so far via a runCommand
environment.systemPackages = with pkgs; [
(runCommand "steelseries-arctis-profiles"
{
nativeBuildInputs = [ coreutils ];
}
''
mkdir -p $out/usr/share/pulseaudio/alsa-mixer/paths
mkdir -p $out/usr/share/pulseaudio/alsa-mixer/profile-sets
# Copy the ALSA mixer paths
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-output-game.conf $out/usr/share/pulseaudio/alsa-mixer/paths/
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-output-chat.conf $out/usr/share/pulseaudio/alsa-mixer/paths/
# Copy the ALSA profile set
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-usb-audio.conf $out/usr/share/pulseaudio/alsa-mixer/profile-sets/
''
)
];
Or an ActivationScript
system.activationScripts = {
arctis-profiles = ''
mkdir -p /usr/share/pulseaudio/alsa-mixer/paths
mkdir -p /usr/share/pulseaudio/alsa-mixer/profile-sets
# Copy the ALSA mixer paths
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-output-game.conf /usr/share/pulseaudio/alsa-mixer/paths/
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-output-chat.conf /usr/share/pulseaudio/alsa-mixer/paths/
# Copy the ALSA profile set
cp ${inputs.steelseries-arctis}/steelseries-arctis-7-usb-audio.conf /usr/share/pulseaudio/alsa-mixer/profile-sets/
'';
};
];
But none of those two works so far.
I managed to add the udev rules like so:
services.udev.packages = [
(pkgs.writeTextFile {
name = "91-pulseaudio-steelseries-arctis-7.rules";
text = builtins.readFile "${inputs.steelseries-arctis}/91-pulseaudio-steelseries-arctis-7.rules";
destination = "/lib/udev/rules.d/91-pulseaudio-steelseries-arctis-7.rules";
})
];
Just to make sure I understand that I’m indeed running Pipewire this is my audio setup configuration
services = {
# Enable CUPS to print documents.
printing.enable = false;
# Enable sound with pipewire.
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
lowLatency = {
enable = true;
quantum = 64;
rate = 48000;
};
};
};
# Make pipewire realtime-capable
security.rtkit.enable = true;
};
Any help would be appreciated on how I could add those 3 files into the Pipewire/PulseAudio configuration!