{ config, pkgs, lib, ... }: let # version = ( # if (config.nixpkgs.config.allowUnfree) # then "idea-ultimate" # else "idea-community" # ); version = "idea-ultimate"; in { # Integrated Development Environment (IDE). # Open issues about nix-shell support/integration: # - .env run configuration: https://github.com/NixOS/nix-idea/issues/1#issuecomment-590851686 # - nix-shell IDE-wide: https://github.com/NixOS/nix-idea/issues/1#issuecomment-734997521 imports = [ # Rust programming lang ./rust.nix ]; allowUnfree = [ version ]; environment.systemPackages = with pkgs; [ # System-wide installation makes python available as: # /run/current-system/sw/bin/python3 # This makes it easier to configure it as interpreter in Jetbrain's IDE. python3 # To use Gradle within InelliJ (or to use a specific OpenJDK version with Gradle), see # shell-intellij-grade-openjd.nix # If a more recent OpenJDK version than the bundled JDK is needed #unstable.jdk #unstable.jdk23 # Markdown preview #pandoc # TODO: Currently markdown previews are broken anyways because of issues with the sandboxed webbrowser on NixOS ]; users.users.yoda = { packages = with pkgs; [ jetbrains."${version}" ]; }; programs.dconf.enable = true; home-manager.users.yoda = { osConfig, config, pkgs, lib, ... }: { dconf.settings = { "org/gnome/shell" = { favorite-apps = ["${version}.desktop"]; }; }; }; }