mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-23 16:29:42 -04:00
My NixOS Configs ❄️
| .claude | ||
| secrets | ||
| system | ||
| user | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .sops.yaml | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
NixOS Configuration
Modular NixOS flake configuration with home-manager integration.
Requirements
- Nix with Flakes
- NixOS for system configurations
- Home-Manager for user configurations
Flake Outputs
| Configuration | Description |
|---|---|
desktop |
Primary workstation |
server |
Home server |
wsl |
Windows Subsystem for Linux |
Fresh Install
From the NixOS live installer:
# Enable flakes
echo "experimental-features = nix-command flakes" | sudo tee -a /etc/nix/nix.conf
# Clone repo
nix run nixpkgs#git -- clone --recurse-submodules https://github.com/itme-brain/nixos.git
cd nixos
# Enter dev shell and install
nix develop
just install desktop
Getting Started
git clone --recurse-submodules git@github.com:itme-brain/nixos.git
cd nixos
nix develop
just
Note: Replace hardware.nix in system/machines/<machine> with output from nixos-generate-config for your hardware.
Directory Structure
.
├── flake.nix
├── flake.lock
├── justfile
│
├── system/
│ ├── keys/ # Machine SSH keys
│ │ └── desktop/
│ └── machines/
│ ├── desktop/
│ │ ├── default.nix # Machine entry point
│ │ ├── hardware.nix # Hardware config
│ │ ├── system.nix # System settings
│ │ └── modules/
│ │ ├── disko/ # Disk partitioning
│ │ └── home-manager/ # Home-manager integration
│ ├── server/ # Server (same structure)
│ └── wsl/ # WSL (same structure)
│
└── user/
├── default.nix # User options (name, email, keys)
├── home.nix # Shared home-manager defaults
├── bookmarks/
├── keys/
│ ├── age/
│ ├── pgp/
│ └── ssh/
└── modules/
├── bash/bash/ # Shell (submodule)
├── git/git/ # Git (submodule)
├── neovim/nvim/ # Neovim (submodule)
├── vim/vim/ # Vim (submodule)
├── tmux/
├── dev/ # CLI dev tools
├── security/
│ ├── gpg/
│ └── yubikey/
├── utils/
│ ├── dev/ # Dev tools (claude-code, direnv, etc.)
│ ├── email/
│ ├── irc/
│ └── writing/
└── gui/
├── default.nix # Browser-focused mimeApps
├── wm/
│ ├── hyprland/
│ └── sway/
├── browsers/
├── alacritty/
├── dev/
│ ├── pcb/ # Arduino, KiCad
│ └── design/ # Penpot
├── corn/
├── fun/
└── utils/
Architecture
flake.nix defines NixOS configurations that reference machines under system/machines/.
Each machine imports its hardware, system settings, and home-manager config.
user/home.nix provides shared defaults for all users:
- Essential packages
- Default modules
Machine home.nix imports user defaults and enables machine-specific modules.