Files
nix-home-manager/README.md

2.6 KiB
Raw Blame History

nixConfig

This is a modular, flake-based Nix configuration repository for managing all personal machines and environments in one place. It supports:

  • Full system configuration for NixOS laptop.
  • Home Manager user environments on all machines (NixOS, Ubuntu, WSL, servers).
  • Reusable modules for programs and services.
  • Declarative configuration and reproducible builds.

Repository Structure

nixConfig/
├── flake.nix               # Flake entry point with all system and user configs
├── flake.lock              # Input versions for reproducibility
├── hosts/                  # Per-host system-level configs
│   ├── t440p               # NixOS system config for laptop
│   │    ├── configuration.nix             # NixOS system config
│   │    └── hardware-configuration.nix    # Hardware config generated by NixOS
│   ├── steamdeck           # NixOS system running on Valve Steamdeck
│   ├── xaorus              # home-manager on Ubuntu 
│   └── vps04_08            # services running on Ubuntu VPS
├── home/                   # Home Manager configs (user environments)
│   └── home.nix            # Shared user config for 'wieerwill'
├── modules/                # Shared program/service modules
│   └── ...

Usage

Rebuild the system

use the systems name at the end. Example:

sudo nixos-rebuild switch --flake ~/nixConfig#t440p

Rebuild Home Manager only (e.g. on non-NixOS systems)

home-manager switch --flake ~/nixConfig#<username>@<hostname>

Update flake inputs

nix flake update

or use the scripts in /scripts. The script is build for on-system execution and will clean up afterwards:

chmod +x ./scripts/nix-maintain.sh
./scripts/nix-maintain.sh

Setup

  • /etc/nixos is a symlink to ~/nixConfig so NixOS can find configuration files (sudo ln -s /home/$USER/nixConfig /etc/nixos).
  • Uses matching Home Manager and Nixpkgs versions (release-25.05) to avoid compatibility warnings.
  • Home Manager is integrated via NixOS modules for system-wide user config.

Modules

The home/ and modules/ directory will contain reusable modules such as:

  • neovim.nix editor configuration
  • firefox.nix browser preferences
  • git.nix shared Git settings
  • traefik.nix server services

These modules will be selectively included in each host config or enabled conditionally.

Secrets & Private Data

Do not store secrets or passwords in this repository! SOPS with age is provided in the configuration as secure method for secrets management.