This repository helps me unify development environments between multiple MacOS systems. It contains configuration files for applications I use and small sharp tools I've written to make my work more effective.
Clone the repository and run ./install.sh. The installer supports two methods:
- Nix (recommended): Declarative, reproducible environment with nix-darwin
- Legacy: Traditional Homebrew + stow approach
./install.sh --nixThis will:
- Install Nix via Determinate Systems installer
- Configure your user as a trusted user (no more sudo for nix commands!)
- Set up nix-darwin for macOS system configuration
- Apply Home Manager for user environment
After installation, apply the full configuration:
# First time: Bootstrap nix-darwin
nix run nix-darwin -- switch --flake .
# Subsequent updates:
darwin-rebuild switch --flake .
# Or use the alias: reload-nixIf nix commands require sudo:
The installer automatically configures trusted users, but if you need to do it manually:
# Add yourself to trusted users
sudo tee -a /etc/nix/nix.custom.conf > /dev/null <<EOF
# Allow user to run nix commands without sudo
trusted-users = root $(whoami)
EOF
# Restart the nix daemon
sudo launchctl kickstart -k system/systems.determinate.nix-daemon
# Verify you're trusted
nix store ping # Should show "Trusted: 1"I've unified my tooling around simple Go applications. They are all available in tools. The install script
create-react-componentgenerates a new React component with the given name.fetch-gitignorefetches a.gitignorefile from the GitHub gitignore repository.normalize-linesnormalizes lines in a string of text to be 80 characters long without breaking words.prependa file renaming tool which will prepend a given string to a glob.serveserve the current directory as a file server.slugteamtimetells you what time is is for everyone on your team.