diff options
| author | Freya Murphy <freya@freyacat.org> | 2026-01-07 12:40:05 -0500 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2026-01-07 16:41:08 -0500 |
| commit | 32410af3593f82e1fff01d69246526c3529be5df (patch) | |
| tree | b1501d526af9dc0d4308c467238fac4c70fc30a2 /shells | |
| parent | move solaar rules to udev package (diff) | |
| download | dotfiles-nix-32410af3593f82e1fff01d69246526c3529be5df.tar.gz dotfiles-nix-32410af3593f82e1fff01d69246526c3529be5df.tar.bz2 dotfiles-nix-32410af3593f82e1fff01d69246526c3529be5df.zip | |
move custom devshells into dotfiles
Diffstat (limited to 'shells')
| -rw-r--r-- | shells/cuda.nix | 45 | ||||
| -rw-r--r-- | shells/default.nix | 36 | ||||
| -rw-r--r-- | shells/vst.nix | 36 |
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}"; + ''; +} |