# Adopt Nanuqsaurus on an existing NixOS install (no repartitioning) This repo intentionally does **not** ship a “one size fits all” `nixosConfiguration` for installed systems. Disk layouts, filesystems, initrd modules, and bootloader details are machine-specific and live in your local `hardware-configuration.nix`. The recommended workflow is to create a **small local wrapper flake** that: - keeps your machine’s `hardware-configuration.nix` as the source of truth for mounts/boot, - imports `nanuqsaurus` as a feature/profile module from its URL, - keeps your personal changes in your own repo (or `/etc/nixos`). ## 1) Create a wrapper flake in `/etc/nixos` On the target machine: 1. Ensure you have a `hardware-configuration.nix` (generated by `nixos-generate-config`). 2. Create `/etc/nixos/flake.nix` like this (adjust `hostName` and `stateVersion`): ```nix { description = "Local wrapper for the nanuqsaurus profile"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nanuqsaurus = { url = "git+https://codeberg.org/randogoth/nanuqsaurus.git"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-hardware = { url = "github:NixOS/nixos-hardware"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ nixpkgs, nanuqsaurus, nixos-hardware, ... }: { nixosConfigurations.nanuqsaurus = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; # Optional: only needed if your local modules require access to flake inputs. specialArgs = { inherit inputs; }; modules = [ ./hardware-configuration.nix # Optional: pick the right hardware module for your machine. # Find your model at https://github.com/NixOS/nixos-hardware or use one of these generic profiles: #nixos-hardware.nixosModules.common-cpu-intel #nixos-hardware.nixosModules.common-cpu-amd #nixos-hardware.nixosModules.common-gpu-intel #nixos-hardware.nixosModules.common-gpu-amd #nixos-hardware.nixosModules.common-gpu-nvidia nanuqsaurus.nixosModules.nanuqsaurus # Optional: opt into Flox tooling + cache # nanuqsaurus.nixosModules.flox { # Optional: change the default admin username ("admin") nanuqsaurus.admin.username = "admin"; networking.hostName = "nanuqsaurus"; system.stateVersion = "25.11"; } ]; }; }; } ``` ## 2) Switch to it ```bash sudo nixos-rebuild switch --flake /etc/nixos#nanuqsaurus ``` ## Updating later - If you keep `nanuqsaurus.url` pointing at the repo, you can update with: - `nix flake update` (in `/etc/nixos`), then - `sudo nixos-rebuild switch --flake /etc/nixos#nanuqsaurus` - Keep all your machine-specific changes in the wrapper flake (additional modules, packages, services, etc.).