Configuration Options Reference
Configuration Options Reference
This document explains all the configuration options available in your Nix-Darwin setup.
Modern Tool Replacements
Location: modules/home/default.nix
# Enable to replace traditional commands with modern alternatives
programs.modernTools.enable = true; # Default: false
What changes when enabled:
Traditional | Modern Replacement | Features Added |
---|---|---|
ls |
eza --icons |
Icons, colors, git status |
cat |
bat |
Syntax highlighting, line numbers |
grep |
rg (ripgrep) |
5-10x faster, respects .gitignore |
find |
fd |
Faster, intuitive syntax |
tree |
erd |
Modern tree with better defaults |
top |
btop |
Beautiful TUI, mouse support |
df |
duf |
Better formatting, colors |
du |
dust |
Visual tree of disk usage |
ps |
procs |
Better formatting, tree view |
dig |
dog |
Colorful, cleaner output |
ping |
gping |
Graph visualization |
diff |
delta |
Side-by-side, syntax highlighting |
Always available shortcuts (regardless of setting):
e
→ ezab
→ batrg
→ ripgrepf
→ fdls2
→ lsd (alternative to eza)tree2
→ broot (interactive tree)fzf2
→ sk (skim)tmux2
→ zellijvim2
→ helix
ML/Data Science Stack
Location: flake.nix
modules = [
./modules/system/core.nix
./modules/system/cli-utils.nix
./modules/system/ml-stack.nix # Uncomment to enable
./modules/homebrew/apps.nix
# ...
];
Adds PyTorch, TensorFlow, Jupyter, pandas, and more.
Shell History
Two options available (both installed):
Atuin (default)
- Neural network-based history search
- Syncs across machines (optional)
- Stats and insights
McFly (alternative)
# To switch to McFly, edit modules/home/default.nix
# Comment out the Atuin line and uncomment:
# eval "$(${pkgs.mcfly}/bin/mcfly init zsh)"
Git Configuration
Location: modules/home/default.nix
programs.git = {
userName = "Your Name"; # TODO: Update
userEmail = "your@email.com"; # TODO: Update
# Optional: Enable commit signing
extraConfig = {
commit.gpgsign = true;
user.signingkey = "YOUR_GPG_KEY";
};
};
Terminal Emulator
Multiple options installed:
- Kitty - GPU accelerated, fast
- WezTerm - Highly configurable
- iTerm2 - Classic Mac terminal
Set your default in System Preferences → Desktop & Dock → Default web browser → Terminal.
Container Runtime
OrbStack installed by default. To use Podman instead:
# In modules/homebrew/apps.nix, replace:
"orbstack"
# With:
"podman-desktop"
Then run:
podman machine init
podman machine start
Useful Toggles
Nix Store Optimization
Already enabled in modules/system/core.nix
:
nix.settings = {
auto-optimise-store = true; # Deduplicates files
fsync-metadata = true; # Safer writes
};
Touch ID for sudo
Already enabled - no configuration needed.
Directory-specific environments
Already configured with direnv. Create .envrc
files in projects:
# Example .envrc
export NODE_ENV=development
export DATABASE_URL=postgresql://localhost/myapp