{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; nix-jetbrains-plugins.url = "github:theCapypara/nix-jetbrains-plugins"; }; outputs = { self, nixpkgs, nixpkgs-unstable, flake-utils, nix-jetbrains-plugins }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; pkgs-unstable = import nixpkgs-unstable { inherit system; config.allowUnfree = true; }; pluginList = [ "be.ugent.piedcler.dodona" "com.github.copilot" "com.google.tools.ij.aiplugin" "IdeaVIM" ]; mkShell = pkgs.mkShell.override { stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv; }; in { devShells.default = pkgs.mkShell { packages = (with pkgs; [ python311Full # CUDA git gitRepo gnupg autoconf curl procps gnumake util-linux m4 gperf unzip cudatoolkit linuxPackages.nvidia_x11 libGLU libGL xorg.libXi xorg.libXmu freeglut xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib ncurses5 stdenv.cc binutils ]) ++ (with pkgs-unstable; [ uv ]) ++ (with nix-jetbrains-plugins.lib."${system}"; [ # Editor of your choice (buildIdeWithPlugins pkgs-unstable.jetbrains "pycharm-professional" pluginList) ]); # CUDA CUDA_PATH = pkgs.cudatoolkit; # ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory LD_LIBRARY_PATH = "${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib:${pkgs.libGL}/lib/:${pkgs.stdenv.cc.cc.lib}/lib/:${pkgs.glibc}/lib"; EXTRA_LDFLAGS = "-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"; EXTRA_CCFLAGS = "-I/usr/include"; # Stop uv from downloading Python binaries automatically if needed. UV_PYTHON_DOWNLOADS = "never"; }; }); }