{ den, inputs, config, ... }: let username = config.local.identity.username; in { den.aspects.dev.nixos = { pkgs, ... }: let pkgs-unstable = import inputs.nixpkgs-unstable { system = pkgs.system; config.allowUnfree = true; }; in { environment.systemPackages = with pkgs-unstable; [ # CLI utilities gcc fzf just tree-sitter ripgrep chafa forgejo-cli awscli2 tracy # Infrastructure docker-compose # IDE jetbrains.idea # Neovim vimPlugins.blink-cmp # LSPs bash-language-server lua-language-server nixd vscode-langservers-extracted yaml-language-server dockerfile-language-server marksman clang-tools jdt-language-server typescript-language-server pyright taplo sqls astro-language-server angular-language-server vue-language-server tailwindcss-language-server qt6Packages.qtdeclarative wgsl-analyzer # Tools drawio # Java openjdk8 openjdk11 openjdk17 openjdk21 maven ]; environment.variables = { JAVA_HOME = "${pkgs-unstable.openjdk8}"; }; systemd.tmpfiles.rules = [ "d /var/lib/payara41 0755 ${username} users -" ]; system.activationScripts.payaraJava = '' asenv=/var/lib/payara41/glassfish/config/asenv.conf if [ -f "$asenv" ]; then ${pkgs.gnused}/bin/sed -i '/^AS_JAVA=/d' "$asenv" echo 'AS_JAVA="${pkgs-unstable.openjdk8}"' >> "$asenv" fi domain_xml=/var/lib/payara41/glassfish/domains/domain1/config/domain.xml if [ -f "$domain_xml" ]; then ${pkgs.gnused}/bin/sed -i 's|java-home="[^"]*"|java-home="${pkgs-unstable.openjdk8}/lib/openjdk"|' "$domain_xml" fi ''; virtualisation.docker.enable = true; users.users.${username}.extraGroups = [ "docker" ]; }; }