Switch to pipewire

This commit is contained in:
Sandro - 2021-09-20 22:26:37 +02:00
parent 0fc2612425
commit 4e5570be88
4 changed files with 95 additions and 15 deletions

View File

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
let
octoprintPort = 8080;
@ -60,6 +60,7 @@ in {
mpv
ncmpcpp
ncpamixer
pulseaudio # required for pactl
vim
wget
];
@ -99,22 +100,14 @@ in {
};
};
};
hardware.pulseaudio = {
services.pipewire = {
enable = true;
systemWide = true;
tcp.enable = true;
tcp.anonymousClients.allowedIpRanges = [
"127.0.0.0/8"
"::1/128"
"fd23:42:c3d2:500::/56"
"172.22.99.0/24"
"172.20.72.0/21"
"2a00:8180:2c00:200::/56"
];
zeroconf.publish.enable = true;
package = pkgs.pulseaudioFull;
extraModules = [ pkgs.pulseaudio-modules-bt ];
alsa.enable = true;
config.pipewire-pulse = lib.importJSON ./pipewire-pulse.conf.json;
pulse.enable = true;
};
security.rtkit.enable = true;
# tell Avahi to publish CUPS and PulseAudio
services.avahi = {

9
hosts/pulsebert/generate.sh Executable file
View File

@ -0,0 +1,9 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p jq
# shellcheck shell=bash
dir=$(dirname "$(readlink -f "$0")")
default_pipewire_pulse=$(nix-instantiate --eval -E '(import <nixos> { }).pkgs.path')/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
jq -s '.[0] * .[1] * .[2]' "$dir/pipewire-pulse.conf.in.json" "$default_pipewire_pulse" > "$dir/pipewire-pulse.conf.json" <(jq -cnS '{ "context.modules": [ inputs."context.modules" ] | add}' "$default_pipewire_pulse" "$dir/pipewire-pulse.conf.in.json")

View File

@ -0,0 +1,20 @@
{
"context.modules": [
{
"name": "libpipewire-module-zeroconf-publish"
},
{
"name": "libpipewire-module-protocol-pulse",
"args": {
"server.address": [
"tcp:127.0.0.0/8",
"tcp:::1/128",
"tcp:fd23:42:c3d2:500::/56",
"tcp:172.22.99.0/24",
"tcp:172.20.72.0/21",
"tcp:2a00:8180:2c00:200::/56"
]
}
}
]
}

View File

@ -0,0 +1,58 @@
{
"context.modules": [
{
"args": {},
"flags": [
"ifexists",
"nofail"
],
"name": "libpipewire-module-rtkit"
},
{
"name": "libpipewire-module-protocol-native"
},
{
"name": "libpipewire-module-client-node"
},
{
"name": "libpipewire-module-adapter"
},
{
"name": "libpipewire-module-metadata"
},
{
"args": {
"server.address": [
"unix:native"
],
"vm.overrides": {
"pulse.min.quantum": "1024/48000"
}
},
"name": "libpipewire-module-protocol-pulse"
},
{
"name": "libpipewire-module-zeroconf-publish"
},
{
"args": {
"server.address": [
"tcp:127.0.0.0/8",
"tcp:::1/128",
"tcp:fd23:42:c3d2:500::/56",
"tcp:172.22.99.0/24",
"tcp:172.20.72.0/21",
"tcp:2a00:8180:2c00:200::/56"
]
},
"name": "libpipewire-module-protocol-pulse"
}
],
"context.properties": {},
"context.spa-libs": {
"audio.convert.*": "audioconvert/libspa-audioconvert",
"support.*": "support/libspa-support"
},
"context.exec": [],
"stream.properties": {}
}