A fully nixified macOS configuration using nix-darwin and home-manager.
- Terminal: Alacritty with base16-default-dark theme
- Editor: Neovim with LSP support for TypeScript, Python, Ruby, and Rust
- Shell: Zsh with Prezto framework and pure prompt
- Multiplexer: Tmux with vim-style navigation
- Development Tools: Git, ripgrep, fzf, jq, htop, bun, and more
- Fonts: Iosevka Nerd Font
- macOS Settings: Fast key repeat, Caps Lock → Escape, and more
Fresh macOS installation
-
Install Nix via Determinate Systems installer (with upstream Nix, not their fork):
curl -fsSL https://install.determinate.systems/nix | sh -s -- installImportant: This installs upstream Nix, which is required for nix-darwin to work properly. Do not use Determinate Systems' forked version.
-
Clone this repository:
git clone https://github.com/hale/dotfiles.git ~/.dotfiles -
Run nix-darwin:
sudo nix run nix-darwin -- switch --flake ~/.dotfiles/nix-darwin-config
After installation, manage your system with:
# Apply configuration changes
darwin-rebuild switch --flake ~/.dotfiles/nix-darwin-config
# Update flake inputs
nix flake update --flake ~/.dotfiles/nix-darwin-configtat- Smart tmux session managementtrash- Move files to trash instead of deletingfr- Fuzzy search command historyfe- Fuzzy file openerfco- Fuzzy git branch checkout
- Git shortcuts (
g,ga,gc,gp, etc.) vim/vi→nvimtm→tmux -2t→tree
Everything is managed through nix-darwin-config/flake.nix:
- System packages
- User packages via home-manager
- Shell configuration (zsh/prezto)
- Application configs (alacritty, tmux, neovim, git)
- macOS system defaults