Declarative configuration using Nix with Nix-Darwin for macOS system management, Home Manager for user environments and Nix-Homebrew integration for macOS package management.
dotfiles/
├── hosts/
│ ├── common/ # shared machine configs
│ ├── darwin/ # macOS host tuning
│ ├── linux/ # linux host tuning
│ └── machine.nix # hardware-specific overrides
│
├── modules/
│ ├── core/ # core setup (nix, homebrew, home-manager)
│ │
│ ├── system/ # system configs and services managed by nix-darwin
│ │ ├── common/ # cross-platform system-level configs
│ │ ├── darwin/ # macOS system-level settings and applications
│ │ └── linux/ # linux system-level settings and applications
│ │
│ └── user/ # user configs and applications managed by home-manager
│ ├── cli/ # command line tools and utilities
│ ├── common/ # cross-platform user configs
│ ├── darwin/ # macOS user-level settings and applications
│ │ └── apps/ # macOS GUI apps (iterm2, raycast, vscode)
│ ├── linux/ # linux user-level settings and applications
│ └── shell/ # shell runtime
│
└── profiles/ # user environment bundles
├── emaiax.nix # personal config and imports
└── work.nix # work-specific setup
Paste the install command in a shell prompt to install.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/emaiax/dotfiles/HEAD/scripts/install.sh)"
Or you can manually run the provided installation script to set up everything:
./scripts/install.sh
Run the provided uninstallation script to clean up everything:
./scripts/uninstall.sh