89 lines
3.0 KiB
Nix
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
|
|
}
|