aboutsummaryrefslogtreecommitdiffstats

dotfiles

My Development Setup, managed with Nix, nix-darwin, and home-manager. Works on macOS, NixOS, and standalone Linux.

Quickstart

1. Install Nix

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

2. Clone the repository

git clone git@github.com:simenandre/dotfiles.git ~/dotfiles
cd ~/dotfiles

3. Apply the configuration

macOS

On first run, bootstrap nix-darwin:

nix run nix-darwin -- switch --flake .#default

On subsequent runs:

darwin-rebuild switch --flake .#default

NixOS

Generate hardware config and rebuild:

sudo nixos-generate-config --show-hardware-config > modules/nixos/hardware-configuration.nix
sudo nixos-rebuild switch --flake .#nixbox

Linux (standalone home-manager)

# x86_64
home-manager switch --flake .#simenandre

# aarch64
home-manager switch --flake .#simenandre@aarch64-linux

Structure

flake.nix               # Entry point – inputs & all configurations
modules/
  darwin/
    default.nix         # System-level configuration (nix settings, core packages)
    homebrew.nix         # Homebrew packages (taps, brews, casks, Mac App Store)
    macos.nix            # macOS system defaults
  home/
    default.nix          # home-manager entry point (platform-aware home directory)
    git.nix              # Git configuration (platform-aware SSH signing path)
    zsh.nix              # Zsh configuration (zshenv, zshrc, aliases, path, extras)
    starship.nix         # Starship prompt
    tmux.nix             # Tmux configuration
    ghostty.nix          # Ghostty terminal configuration
  nixos/
    default.nix          # NixOS system configuration
scripts/
  cleanup.sh             # macOS cleanup utility