{ pkgs, lib, ... }: { home.packages = with pkgs; [ # devenv unstable.devenv # Javascript nodejs_22 (nodePackages.pnpm.override { withNode = false; }) unstable.deno unstable.bun # PHP php # Python python3 # Nix unstable.nixd alejandra # Rust (rust-bin.stable.latest.default.override { extensions = ["rust-src" "llvm-tools-preview"]; }) pkg-config openssl # Markdown pandoc ] ++ lib.optional pkgs.stdenv.isDarwin pkgs.libiconv ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices SystemConfiguration ]); # Required for the `openssl-sys` crate to build properly home.sessionVariables.PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; programs.zsh.initExtra = '' export PATH=~/.npm-packages/bin:$PATH export NODE_PATH=~/.npm-packages/lib/node_modules ''; programs.direnv = { enable = true; package = pkgs.unstable.direnv; config = { global.hide_env_diff = true; }; }; programs.java = { enable = true; package = pkgs.jdk21; }; # Bun Git config programs.git = { attributes = [ "*.lockb binary diff=lockb" ]; extraConfig = { diff.lockb.textconv = "bun"; diff.lockb.binary = "true"; }; }; programs.lazygit = { enable = true; }; }