https://github.com/singhmanavjot/nix-config
Personal Nix configuration monorepo for NixOS and nix-darwin systems
https://github.com/singhmanavjot/nix-config
configuration-management dotfiles home-manager homebrew macos neovim nix nix-darwin nix-flakes nixos nixvim terminal
Last synced: 3 months ago
JSON representation
Personal Nix configuration monorepo for NixOS and nix-darwin systems
- Host: GitHub
- URL: https://github.com/singhmanavjot/nix-config
- Owner: singhmanavjot
- License: mit
- Created: 2025-09-28T18:04:47.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-04-06T03:30:18.000Z (3 months ago)
- Last Synced: 2026-04-06T05:24:29.460Z (3 months ago)
- Topics: configuration-management, dotfiles, home-manager, homebrew, macos, neovim, nix, nix-darwin, nix-flakes, nixos, nixvim, terminal
- Language: Nix
- Size: 107 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nix Configuration
Personal Nix configuration monorepo managing macOS system configurations
using nix-darwin and home-manager.
## Quick Start
### Prerequisites
- Nix with flakes enabled
- [nh](https://github.com/viperML/nh) (recommended) or darwin-rebuild
### Building and Applying
```bash
# Build configuration without applying changes
nh darwin build .
# Build and apply changes
nh darwin switch .
```
### Alternative commands
```bash
# Using darwin-rebuild
darwin-rebuild build --flake .
darwin-rebuild switch --flake .
```
## Development
### Development Environment
```bash
# Enter development shell
devenv shell
# Start development services
devenv up
```
### Testing and Validation
```bash
# Validate flake configuration
nix flake check
# Run test suite (builds Darwin and NixOS variants)
devenv test
```
## Project Structure
```text
├── darwin/ # macOS system-level configuration (nix-darwin)
│ ├── _mixins/ # Modular system configurations
│ └── default.nix # Main Darwin configuration
├── home-manager/ # User-level configuration
│ ├── nixvim/ # Neovim configuration
│ ├── ghostty/ # Terminal emulator config
│ └── ... # Other user applications
├── lib/ # Helper functions and utilities
├── secrets/ # SOPS-encrypted secrets
└── flake.nix # Flake definition and outputs
```
### Key Features
- **Modular Architecture**: Organized mixins for easy configuration management
- **Comprehensive Tooling**: DevOps, security, and development tools included
- **Secrets Management**: SOPS integration with age encryption
- **Pre-commit Hooks**: Automated formatting and linting
- **Cross-platform Testing**: Validates both Darwin and NixOS builds
## Configuration Management
### System Configuration (Darwin)
Located in `darwin/` directory:
- System preferences and keyboard settings
- Homebrew integration for GUI applications
- Nix daemon configuration
### User Configuration (Home Manager)
Located in `home-manager/` directory:
- Complete Neovim setup with LSP support
- Shell configuration (zsh, starship)
- Terminal applications (tmux, ghostty)
- Development tools and utilities
## Secrets
Secrets are managed using SOPS with age encryption:
- Store secrets in `secrets/secrets.yaml`
- Age key file: `$HOME/.config/sops/age/keys.txt`
## Development Tools
Includes comprehensive tooling for:
- **DevOps**: kubectl, helm, terraform, docker, kind
- **Security**: trivy, cosign, syft, age, sops
- **Development**: Language servers, formatters, linters
- **Utilities**: bat, ripgrep, fd, fzf, lazygit
## Platform Support
- Primary target: Apple Silicon (aarch64-darwin)
- Homebrew with Rosetta support for x86 applications
- Integrated Darwin and home-manager configurations