Files
nixos/modules/dev.nix
Melvin Ragusa b53c2ecaa9 fix formatting
2026-02-03 11:14:57 +01:00

89 lines
3.0 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
# ═══════════════════════════════════════════════════════════════
# NOTE: GUI tools (dbeaver) and optional TUIs (lazygit, lazydocker) are in `nix profile`
environment.systemPackages = with pkgs; [
# ─── Containers ───
docker-compose # Docker Compose v2
# ─── Languages & Runtimes ───
nodejs_22 # Node.js LTS (for Vicinae extensions, etc.)
bun # Fast JavaScript runtime/bundler
python3 # Python 3
rustup # Rust toolchain manager
# ─── Build Tools ───
gcc
gnumake
cmake
pkg-config
# ─── Version Control ───
git
gh # GitHub CLI
delta # Better git diff
lazygit # Git UI
# ─── Editors & LSP ───
# nil already in base config (Nix LSP)
nixfmt # Nix formatter
# ─── 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
# 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)
];
# Note: Shell aliases are now managed in shell.nix (Fish shell)
# Zsh is kept as a fallback shell but Fish is the primary
}