Skip to content
← Work
active

dotfiles

My machine configuration as a Nix flake: nix-darwin, home-manager, neovim, zsh, tmux, and alacritty.

  • Nix
  • nix-darwin
  • home-manager
  • Lua

dotfiles is how I set up a machine. One Nix flake describes the whole thing: nix-darwin for macOS system state, home-manager for packages and dotfiles, and the hand-written configs that sit underneath them.

Highlights

  • A shared mkDarwin builder derives every host from the same module set, so a new machine is one entry in darwinConfigurations plus a Makefile target
  • neovim is configured in Lua, biased toward Rust, Go, and web development
  • zsh is built around zinit; tmux carries the settings and plugins I stopped thinking about
  • The flake is importable as a base (github:acehinnnqru/dotfiles/master), so a smaller, machine-specific flake can reuse the same builder

Usage

Install Nix, add a host to the flake, then build and switch through the Makefile:

make fresh-build-macos hostname=<host>
make switch-macos hostname=<host>