diff options
Diffstat (limited to 'bragi.nix')
-rw-r--r-- | bragi.nix | 29 |
1 files changed, 26 insertions, 3 deletions
@@ -1,6 +1,16 @@ | |||
1 | { config, pkgs, ... }: | 1 | { config, pkgs, ... }: |
2 | 2 | let | |
3 | { | 3 | makemix = (n: { |
4 | wantedBy = [ "sound.target" ]; | ||
5 | requires = [ "jack.service" ]; | ||
6 | serviceConfig = { | ||
7 | Type = "simple"; | ||
8 | ExecStart = "${pkgs.trivmix}/bin/trivmix --client mix --input 'in_${n}' --output 'out_${n}' --dir /run/jackmix_${n}"; | ||
9 | User = "jack"; | ||
10 | Group = "audio;" | ||
11 | }; | ||
12 | }); | ||
13 | in { | ||
4 | imports = | 14 | imports = |
5 | [ | 15 | [ |
6 | ./bragi-hw.nix | 16 | ./bragi-hw.nix |
@@ -25,7 +35,17 @@ | |||
25 | 35 | ||
26 | nixpkgs.config.packageOverrides = pkgs: | 36 | nixpkgs.config.packageOverrides = pkgs: |
27 | { | 37 | { |
28 | trivmix = pkgs.callPackage ./customized/trivmix.nix {}; | 38 | trivmix = let trivmix = pkgs.callPackage ./customized/trivmix.nix {}; in |
39 | stdenv.mkDerivation { | ||
40 | name = "trivmix-wrapper"; | ||
41 | nativeBuildInputs = [ pkgs.makeWrapper ]; | ||
42 | buildCommand = '' | ||
43 | mkdir -p $out/bin | ||
44 | makeWrapper ${trivmix}/bin/trivmix $out/bin/trivmix \ | ||
45 | --run "umask 0" \ | ||
46 | --set JACK_PROMISCUOUS_SERVER 1 | ||
47 | ''; | ||
48 | }; | ||
29 | jack2 = pkgs.callPackage ./customized/jack2.nix {}; | 49 | jack2 = pkgs.callPackage ./customized/jack2.nix {}; |
30 | mpd = pkgs.callPackage ./customized/mpd.nix { | 50 | mpd = pkgs.callPackage ./customized/mpd.nix { |
31 | gmeSupport = false; | 51 | gmeSupport = false; |
@@ -82,6 +102,9 @@ | |||
82 | }; | 102 | }; |
83 | }; | 103 | }; |
84 | 104 | ||
105 | systemd.services."trivmix_0" = (makemix 0); | ||
106 | systemd.services."trivmix_1" = (makemix 1); | ||
107 | |||
85 | services.mpd = { | 108 | services.mpd = { |
86 | enable = true; | 109 | enable = true; |
87 | musicDirectory = "/media/odin/music"; | 110 | musicDirectory = "/media/odin/music"; |