{ pkgs, ... }:
{
  home.packages =
    let
      pythonEnv = (
        pkgs.python312.withPackages (
          ps: with ps; [
            flake8
            isort
            numpy
            scipy
            xarray
            netcdf4
            matplotlib
          ]
        )
      );
      luaEnv = (pkgs.luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]));
    in
    with pkgs;
    [
      ## Language Environments
      pythonEnv
      luaEnv

      ## Linters
      shellcheck
      ruff

      ## Formatters
      nixfmt-rfc-style
      shfmt
      stylua
      nodePackages.prettier

      ## Language servers
      nixd
      pyright
      lua-language-server
      rust-analyzer
    ];
  xdg.configFile."ruff/pyproject.toml".source = ./ruff.toml;
}