summaryrefslogtreecommitdiffstats
path: root/usecases/desktop/pipewire.nix
blob: e742ba938e4ddc82c2c38cc0a61cb48b177c774e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
inputs:

{ pkgs, ... }:

{
  imports = [
    (inputs.nixpkgs-unstable.outPath + "/nixos/modules/services/desktops/pipewire/pipewire.nix")
    (inputs.nixpkgs-unstable.outPath + "/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix")
  ];

  disabledModules = [ "services/desktops/pipewire.nix" ];

  services.pipewire = {
    enable = true;
    package = pkgs.unstable.pipewire;

    alsa.enable = true;
    jack.enable = true;
    pulse.enable = true;

    config = {
      pipewire-pulse = {
        "context.modules" = [
          { name = "libpipewire-module-rtkit"; flags = [ "ifexists" "nofail" ]; }
          { name = "libpipewire-module-protocol-native"; }
          { name = "libpipewire-module-client-node"; }
          { name = "libpipewire-module-adapter"; }
          { name = "libpipewire-module-metadata"; }
          {
            name = "libpipewire-module-protocol-pulse";
            args = {
              # TODO: set it in MPD?
              "server.address" = [ "unix:native" "tcp:127.0.0.1:4713" ];
            };
          }
        ];
      };
    };

    media-session.package = pkgs.unstable.pipewire.mediaSession;
  };

  security.rtkit.enable = true;
}