diff options
| -rw-r--r-- | makefu/2configs/audio/jack-on-pulse.nix | 45 | ||||
| -rw-r--r-- | makefu/2configs/audio/realtime-audio.nix | 12 | ||||
| -rw-r--r-- | makefu/2configs/sources/default.nix | 7 | ||||
| -rw-r--r-- | makefu/2configs/sources/musnix.nix | 6 | 
4 files changed, 70 insertions, 0 deletions
diff --git a/makefu/2configs/audio/jack-on-pulse.nix b/makefu/2configs/audio/jack-on-pulse.nix new file mode 100644 index 000000000..09d03ea9f --- /dev/null +++ b/makefu/2configs/audio/jack-on-pulse.nix @@ -0,0 +1,45 @@ +{ config, pkgs, ... }: +let +  pulse = pkgs.pulseaudioFull; +  user = config.makefu.gui.user; +in +{ +  sound.enable = true; +  hardware.pulseaudio = { +    enable = true; +    package = pulse; +  }; + +  environment.systemPackages = with pkgs; [ jack2Full ]; +  # from http://anderspapitto.com/posts/2015-11-26-overtone-on-nixos-with-jack-and-pulseaudio.html + +  systemd.services = { +    jackdbus = { +      description = "Runs jack, and points pulseaudio at it"; +      serviceConfig = { +        User = user; +        Type = "oneshot"; +        ExecStart = pkgs.writeScript "start_jack.sh" '' +          #! ${pkgs.bash}/bin/bash +          . ${config.system.build.setEnvironment} +          sleep 5 # wait for the gui to load + +          ${pkgs.jack2Full}/bin/jack_control start +          sleep 3 # give some time for sources/sinks to be created + +          ${pulse}/bin/pacmd set-default-sink jack_out +          ${pulse}/bin/pacmd set-default-source jack_in +        ''; +        ExecStop = pkgs.writeScript "stop_jack.sh" '' +          #! ${pkgs.bash}/bin/bash +          . ${config.system.build.setEnvironment} + +          ${pkgs.jack2Full}/bin/jack_control stop +        ''; +        RemainAfterExit = true; +      }; +      after = [ "display-manager.service" "sound.target" ]; +      wantedBy = [ "multi-user.target" ]; +    }; +  }; +} diff --git a/makefu/2configs/audio/realtime-audio.nix b/makefu/2configs/audio/realtime-audio.nix new file mode 100644 index 000000000..d9709e4b7 --- /dev/null +++ b/makefu/2configs/audio/realtime-audio.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: +let +  user = config.makefu.gui.user; +in +{ +  imports = [ +    ../sources/musnix.nix # populate musnix +    <musnix> +  ]; +  musnix.enable = true; +  users.users."${user}".extraGroups = [ "audio" ]; +} diff --git a/makefu/2configs/sources/default.nix b/makefu/2configs/sources/default.nix new file mode 100644 index 000000000..232117aec --- /dev/null +++ b/makefu/2configs/sources/default.nix @@ -0,0 +1,7 @@ +# the builder pc (my laptop) will also require the sources i use to deploy +# other boxes +{ +  imports = [ +    ./musnix.nix +  ]; +} diff --git a/makefu/2configs/sources/musnix.nix b/makefu/2configs/sources/musnix.nix new file mode 100644 index 000000000..d02dd4a48 --- /dev/null +++ b/makefu/2configs/sources/musnix.nix @@ -0,0 +1,6 @@ +{ +  krebs.build.source.musnix.git = { +    url = https://github.com/musnix/musnix.git; +    ref = "37a8378"; +  }; +}  | 
