Files
home/modules/home/packages.nix
Morten Olsen e384cc4829 updates
2025-12-25 00:56:49 +01:00

194 lines
6.3 KiB
Nix

# Packages module
#
# This module manages CLI tools and packages installed via Nix.
# GUI applications (casks) are managed via Homebrew in the darwin modules.
#
# Based on the Brewfile analysis from docs/migration-analysis.md
{
config,
pkgs,
lib,
...
}: {
home.packages = with pkgs; [
# ========================================================================
# Shell Tools
# ========================================================================
# Note: zsh, atuin, starship, fzf, zoxide, direnv are configured via
# programs.* in shell.nix for better integration
# ========================================================================
# Modern CLI Replacements
# These replace traditional Unix tools with modern alternatives
# ========================================================================
bat # Modern cat with syntax highlighting (aliased as cat)
eza # Modern ls with icons and git integration (aliased as ls)
fd # Modern find
ripgrep # Modern grep (aliased as grep)
delta # Modern diff with syntax highlighting (aliased as diff)
dust # A more intuitive version of du written in rust
duf # A better df alternative
hyperfine # A command-line benchmarking tool.
choose # A human-friendly and fast alternative to cut and (sometimes) awk
coreutils
yazi # File manager
# ========================================================================
# File and Text Utilities
# ========================================================================
jq # JSON processor
yq # YAML processor
tree # Directory tree viewer
rsync # File synchronization
unzip # Archive extraction
curl # HTTP client
wget # HTTP client
watch # Execute commands periodically
# ========================================================================
# Git and Version Control
# ========================================================================
git # Version control
gh # GitHub CLI
# git-delta is included above as 'delta'
jujutsu # Git-compatible VCS (jj)
lazygit # Terminal UI for git
# ========================================================================
# Development Tools
# ========================================================================
neovim # Text editor
tmux # Terminal multiplexer
# Languages and Runtimes
nodejs_22 # Node.js LTS (replaces NVM)
deno # JavaScript/TypeScript runtime
python313 # Python 3.13
# pyenv is configured in shell.nix
uv # Fast Python package installer
mise # tool manager
# Build Tools
gnumake # Make build tool
cmake # Cross-platform build system
# ========================================================================
# Container and Kubernetes Tools
# ========================================================================
docker # Container runtime (CLI only, daemon via colima)
docker-buildx # Docker build extensions
docker-compose # Multi-container Docker applications
colima # Container runtime for macOS (replaces Docker Desktop)
# Kubernetes
kubectl # Kubernetes CLI
kubectx # Easy context switcher
kubernetes-helm # Kubernetes package manager
helmfile # Declarative Helm chart management
k9s # Kubernetes TUI
istioctl # Istio service mesh CLI
fluxcd # GitOps toolkit
popeye #
argocd
kubeseal
kubebuilder
kind
# ========================================================================
# Infrastructure and Cloud Tools
# ========================================================================
terraform # Infrastructure as code
ansible # Configuration management
sshpass # Non-interactive SSH password auth (for ansible)
awscli2 # AWS CLI v2
# ========================================================================
# Media Tools
# ========================================================================
ffmpeg # Media processing
# ========================================================================
# Security Tools
# ========================================================================
gnupg # GPG encryption
age # Modern encryption tool
sops # Secrets management
rustscan # The Modern Port Scanner. Find ports quickly (3 seconds at its fastest). nmap alternative.
# ========================================================================
# Miscellaneous Tools
# ========================================================================
graphviz # Graph visualization
tree-sitter # Parser generator (for neovim)
htop # Process viewer
ncdu # Disk usage analyzer
tldr # Simplified man pages
doggo # Command-line DNS client for humans. dig on steroids
btop # A monitor of resources
gh
mob
zsh-fast-syntax-highlighting
jellyfin-tui
# ========================================================================
# Nix Tools
# ========================================================================
nixfmt-rfc-style # Nix code formatter
nil # Nix language server
# ========================================================================
# AAI tools
# ========================================================================
gemini-cli
opencode
];
# ========================================================================
# Additional Program Configurations
# ========================================================================
# Note: Git is configured in modules/home/git.nix
# The git module handles all git configuration including delta integration
# Bat configuration (modern cat replacement)
programs.bat = {
enable = true;
config = {
theme = "Catppuccin Mocha";
style = "numbers,changes,header";
};
};
# Eza configuration (modern ls replacement)
programs.eza = {
enable = true;
enableZshIntegration = true;
icons = "auto";
git = true;
};
# Ripgrep configuration
programs.ripgrep = {
enable = true;
arguments = [
"--smart-case"
"--hidden"
"--glob=!.git/*"
];
};
# Htop configuration
programs.htop = {
enable = true;
settings = {
show_program_path = false;
tree_view = true;
};
};
# Lazygit configuration
programs.lazygit = {
enable = true;
};
}