Files
nixos/modules/dev.nix
Melvin Ragusa f017b45840 Remove Vicinae input and virtualization module
Add pnpm and lazydocker to system packages and normalize Node/Bun
entries. Expand filesystem options into multi-line arrays, remove an
extra groups comment, update flake.lock (noctalia ref), and tidy README
newline/formatting.
2026-02-04 08:18:48 +01:00

87 lines
2.6 KiB
Nix

# modules/dev.nix
# Development tools: Docker, Node.js, direnv, build tools
{
config,
pkgs,
lib,
username,
...
}:
{
# ═══════════════════════════════════════════════════════════════
# DOCKER
# ═══════════════════════════════════════════════════════════════
virtualisation.docker = {
enable = true;
# Recommended settings
autoPrune = {
enable = true;
dates = "weekly";
flags = [ "--all" ];
};
};
# Add user to docker group
users.users.${username}.extraGroups = [ "docker" ];
# ═══════════════════════════════════════════════════════════════
# DIRENV
# ═══════════════════════════════════════════════════════════════
# Per-project environments
programs.direnv = {
enable = true;
nix-direnv.enable = true; # Faster direnv for Nix
};
# ═══════════════════════════════════════════════════════════════
# DEVELOPMENT PACKAGES
# ═══════════════════════════════════════════════════════════════
environment.systemPackages = with pkgs; [
# ─── Containers ───
docker-compose # Docker Compose v2
lazydocker
# ─── Languages & Runtimes ───
bun
pnpm
nodejs
python3
rustup
# ─── Build Tools ───
gcc
gnumake
cmake
pkg-config
# ─── Version Control ───
git
gh
delta
lazygit
# ─── Editors & LSP ───
nil
nixfmt
# ─── CLI Utilities ───
jq # JSON processor
yq # YAML processor
ripgrep # Fast grep
fd # Fast find
fzf # Fuzzy finder
eza # Modern ls
bat # Cat with syntax highlighting
broot # TUI Folder Tree
# Additional CLI tools
tealdeer # tldr - simplified man pages
duf # Better df (disk usage)
sd # Better sed (find & replace)
pv # Pipe viewer (progress bar for pipes)
parallel # GNU parallel (run commands in parallel)
];
}