diff options
author | Nathaniel Glen <njag2202@gmail.com> | 2020-07-24 23:28:07 -0400 |
---|---|---|
committer | Nathaniel Glen <njag2202@gmail.com> | 2020-09-19 16:33:00 -0400 |
commit | ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11 (patch) | |
tree | fb14970eeb04079b49ddc315748e7dd579dc2bad /nixos | |
parent | cd81d4043e108c8d932605eac2130a82787e20b9 (diff) | |
download | nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar.gz nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar.bz2 nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar.lz nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar.xz nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.tar.zst nixpkgs-ccefdd9dae70fd4ed1a6e6df5cf490b174efeb11.zip |
nixos/pipewire: add jack/pulse emulation
This allows for transparent JACK and PulseAudio emulation. With this you can essentially replace your entire audio framework with just PipeWire for almost no configuration.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/desktops/pipewire.nix | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/nixos/modules/services/desktops/pipewire.nix b/nixos/modules/services/desktops/pipewire.nix index ed2f1c36016..c9c23593ce7 100644 --- a/nixos/modules/services/desktops/pipewire.nix +++ b/nixos/modules/services/desktops/pipewire.nix @@ -9,6 +9,14 @@ let && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.pipewire != null; + jack-libs = pkgs.runCommand "jack-libs" {} '' + mkdir -p "$out/lib" + ln -s "${pkgs.pipewire.lib}/lib/pipewire-0.3/jack" "$out/lib/pipewire" + ''; + pulse-libs = pkgs.runCommand "pulse-libs" {} '' + mkdir -p "$out/lib" + ln -s "${pkgs.pipewire.lib}/lib/pipewire-0.3/pulse" "$out/lib/pipewire" + ''; in { meta = { @@ -45,13 +53,35 @@ in { ''; }; }; + + jack = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + Enable transparent JACK audio emulation using LD_LIBRARY_PATH. + ''; + }; + }; + + pulse = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + Enable transparent PulseAudio emulation using LD_LIBRARY_PATH. + ''; + }; + }; }; }; ###### implementation config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.pipewire ]; + environment.systemPackages = [ pkgs.pipewire ] + ++ lib.optional cfg.jack.enable jack-libs + ++ lib.optional cfg.pulse.enable pulse-libs; systemd.packages = [ pkgs.pipewire ]; @@ -74,5 +104,6 @@ in { environment.etc."alsa/conf.d/50-pipewire.conf" = mkIf cfg.alsa.enable { source = "${pkgs.pipewire}/share/alsa/alsa.conf.d/50-pipewire.conf"; }; + environment.sessionVariables.LD_LIBRARY_PATH = "/run/current-system/sw/lib/pipewire"; }; } |