diff options
Diffstat (limited to '')
| -rw-r--r-- | shells/cuda.nix | 45 | ||||
| -rw-r--r-- | shells/default.nix | 35 | ||||
| -rw-r--r-- | shells/vst.nix | 31 |
3 files changed, 111 insertions, 0 deletions
diff --git a/shells/cuda.nix b/shells/cuda.nix new file mode 100644 index 0000000..3935296 --- /dev/null +++ b/shells/cuda.nix @@ -0,0 +1,45 @@ +{ + pkgs, + lib, +}: let + nvidiaPackage = pkgs.linuxPackages_latest.nvidiaPackages.stable; + libs = with pkgs; [ + # CUDA + cudaPackages.cuda_cudart + cudaPackages.cuda_nvcc + cudaPackages.cuda_cccl + cudaPackages.cudnn + cudatoolkit + nvidiaPackage + + # OpenGL + libGLU + libGL + freeglut + + # X11 + xorg.libXi + xorg.libXmu + xorg.libXext + xorg.libX11 + xorg.libXv + xorg.libXrandr + + # Dev Tools + ffmpeg + zlib + gcc + binutils + ]; +in { + packages = libs; + LD_LIBRARY_PATH = lib.makeLibraryPath libs; + + shellHook = '' + # Nvidia Driver setup + export NVIDIA_VISIBLE_DEVICES=all + export NVIDIA_DRIVER_CAPABILITIES=compute,utility + export CUDA_VISIBLE_DEVICES=0 + export CUDA_PATH=${pkgs.cudatoolkit} + ''; +} diff --git a/shells/default.nix b/shells/default.nix new file mode 100644 index 0000000..22a7ee3 --- /dev/null +++ b/shells/default.nix @@ -0,0 +1,35 @@ +{ + pkgs, + system, + inputs, +}: { + # Default shell only containing home-manager for + # initial installs + default = pkgs.mkShell { + packages = [ + inputs.home-manager.packages.${system}.home-manager + ]; + }; + + # Loads Nvidia CUDA + cuda = pkgs.mkShell (import ./cuda.nix { + pkgs = import inputs.nixpkgs { + inherit system; + config = { + allowUnfree = true; + cudaSupport = true; + cudaVersion = "12"; + }; + }; + lib = inputs.nixpkgs.lib; + }); + + # VST development with windows VST3 support though yabridge/wine + vst = pkgs.mkShell (import ./vst.nix { + pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + }; + lib = inputs.nixpkgs.lib; + }); +} diff --git a/shells/vst.nix b/shells/vst.nix new file mode 100644 index 0000000..3ba3326 --- /dev/null +++ b/shells/vst.nix @@ -0,0 +1,31 @@ +{ + pkgs, + lib, +}: let + libs = with pkgs; [ + # fix missing libs + gcc-unwrapped + libxcb + # fix audio + alsa-lib + pipewire + pulseaudio + # yabridge + wineWowPackages.yabridge + yabridge + yabridgectl + ]; +in { + packages = with pkgs; + [ + reaper + ] + ++ libs; + + LD_LIBRARY_PATH = lib.makeLibraryPath libs; + + shellHook = '' + export WINEPREFIX="$XDG_DATA_HOME/vst_wine"; + export NIX_PROFILES="$NIX_PROFILES ${pkgs.yabridge}"; + ''; +} |