summaryrefslogtreecommitdiff
path: root/shells
diff options
context:
space:
mode:
Diffstat (limited to 'shells')
-rw-r--r--shells/cuda.nix45
-rw-r--r--shells/default.nix36
-rw-r--r--shells/vst.nix36
3 files changed, 117 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..8bc7548
--- /dev/null
+++ b/shells/default.nix
@@ -0,0 +1,36 @@
+{
+ 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;
+ inherit system inputs;
+ });
+}
diff --git a/shells/vst.nix b/shells/vst.nix
new file mode 100644
index 0000000..a0c1694
--- /dev/null
+++ b/shells/vst.nix
@@ -0,0 +1,36 @@
+{
+ pkgs,
+ lib,
+ inputs,
+ system,
+}: let
+ wine = inputs.self.packages.${system}.wine-wow-yabridge;
+ yabridge = inputs.self.packages.${system}.yabridge;
+ yabridgectl = inputs.self.packages.${system}.yabridgectl;
+ libs = with pkgs; [
+ # fix missing libs
+ gcc-unwrapped
+ libxcb
+ # fix audio
+ alsa-lib
+ pipewire
+ pulseaudio
+ # yabridge
+ wine
+ 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 ${yabridge}";
+ '';
+}