# Gradle's toolchain support does not work with IntelliJ, thus we have to use buildFHSUserEnv # https://discourse.nixos.org/t/how-to-create-a-development-environment-with-intellij-idea-and-openjdk/10153 # How to use `config.allowUnfree` in shell.nix # https://github.com/NixOS/nixpkgs/issues/166220#issuecomment-1745803058 { ### Import with nix channels ### # # NixOS stable #pkgs ? import { # config.allowUnfree = true; #}, # NixOS unstable #unstable ? import { # config.allowUnfree = true; #} }: let ### Import with Niv ### # sources = import ./nix/sources.nix; # NixOS stable pkgs = import sources.nixpkgs { config.allowUnfree = true; }; # NixOS unstable unstable = import sources.unstable { config.allowUnfree = true; }; jdk = unstable.jdk23; gradle = unstable.gradle.override { java = jdk; # Required for `gradle javaToolchains` to list JDK23 javaToolchains = [ jdk ]; }; in ( pkgs.buildFHSUserEnv { name = "intellij-gradle-jdk23"; targetPkgs = pkgs_: [ pkgs_.jetbrains.idea-ultimate # IntelliJ needs at least one font installed. # If this shell.nix is run on a non-NixOS system, that might not be the case. # Thus, we manually add one font. pkgs_.noto-fonts jdk gradle ]; } ).env