Files
nixos/modules/dev.nix
Melvin Ragusa 2505298449 Normalize Nix module formatting and update flake.lock
Consistently format module argument blocks and convert aligned
package comments to inline comments. Trim trailing whitespace and
minor layout tweaks across modules. Bump opencode rev, narHash and
lastModified in flake.lock and remove the original dev ref.
2026-02-02 18:08:01 +01:00

102 lines
4.6 KiB
Nix

# modules/dev.nix
# Development tools: Docker, Node.js, direnv, build tools
{
config,
pkgs,
lib,
...
}:
{
# Docker
virtualisation.docker = {
enable = true;
# Recommended settings
autoPrune = {
enable = true;
dates = "weekly";
flags = [ "--all" ];
};
};
# Add user to docker group
users.users.pinj.extraGroups = [ "docker" ];
# Direnv for 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 # Terminal UI for Docker
# ─────────────────────────────────────────────────────────────
# 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
lazygit # Terminal UI for Git
delta # Better git diff
# ─────────────────────────────────────────────────────────────
# 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
httpie # Better curl
curlie # Curl wrapper with httpie-like syntax
# Additional CLI tools (migrated from Arch)
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)
inxi # System information tool
glances # System monitor (htop alternative)
grc # Generic colorizer for CLI output
# ─────────────────────────────────────────────────────────────
# Database Tools
# ─────────────────────────────────────────────────────────────
dbeaver-bin # Universal database tool (GUI)
];
# Note: Shell aliases are now managed in shell.nix (Fish shell)
# Zsh is kept as a fallback shell but Fish is the primary
}