112 lines
4.9 KiB
Nix
112 lines
4.9 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-rfc-style # 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
|
|
|
|
# ─────────────────────────────────────────────────────────────
|
|
# Database Tools
|
|
# ─────────────────────────────────────────────────────────────
|
|
dbeaver-bin # Universal database tool (GUI)
|
|
];
|
|
|
|
# Better shell experience for development
|
|
programs.zsh = {
|
|
# Already enabled in base config
|
|
autosuggestions.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
|
|
shellAliases = {
|
|
ll = "eza -la --icons --git";
|
|
ls = "eza --icons";
|
|
cat = "bat";
|
|
find = "fd";
|
|
grep = "rg";
|
|
|
|
# Docker shortcuts
|
|
dc = "docker-compose";
|
|
dps = "docker ps";
|
|
|
|
# Git shortcuts
|
|
gs = "git status";
|
|
gd = "git diff";
|
|
gl = "git log --oneline -20";
|
|
|
|
# NixOS shortcuts
|
|
rebuild = "sudo nixos-rebuild switch --flake .";
|
|
update = "nix flake update";
|
|
};
|
|
};
|
|
}
|