Kris's Nix
You should end up with:
- NixOS using this repo from
/etc/nixos - the automatically-created user
kris - the default desktop config from this flake
What This Repo Does
This repo configures:
- the default desktop machine
- a separate server host
DO NOT use #server, this build the server!
Before You Start
You need:
- a NixOS installer
- internet access
- your disks partitioned and mounted
- this repo (
git@tangled.sh:kris.darkworld.download/nix)
Disk Layout
This repo now uses disko for the default desktop host.
The current declarative layout is:
disk = /dev/nvme0n1
ESP = 2G FAT32 mounted at /boot
root disk = remaining space as btrfs
subvols = /, /home, /nix
Mount options are declared in the disko config:
/withcompress=zstd/homewithcompress=zstd/nixwithcompress=zstd,noatime
If /dev/nvme0n1 is not the disk you want to wipe and install to, edit hosts/default/disko.nix before running the installer.
RAHHHHH IM NOT WRITING STUFF ANYMORE PLZ JUST TRY TO FIGURE OUT THE STEPS URSELF THX
Fresh Install
1. Boot the NixOS installer
Use the normal installer ISO.
2. Clone the repo in the installer
From the live installer:
nix-shell -p git
rm -rf /etc/nixos
git clone git@tangled.sh:kris.darkworld.download/nix /etc/nixos
3. Let disko partition and mount the target disk
Run:
nix --extra-experimental-features 'nix-command flakes' run github:nix-community/disko -- --mode destroy,format,mount /etc/nixos#default
This will:
- partition the disk
- format it
- create the btrfs subvolumes
- mount everything under
/mnt
This is destructive.
4. Generate hardware config
Run:
nixos-generate-config --root /mnt
Then replace the generated target config with this repo while keeping the generated hardware file:
cp /mnt/etc/nixos/hardware-configuration.nix /tmp/hardware-configuration.nix
rm -rf /mnt/etc/nixos
git clone git@tangled.sh:kris.darkworld.download/nix /mnt/etc/nixos
cp /tmp/hardware-configuration.nix /mnt/etc/nixos/hardware-configuration.nix
Install The System
5. Run the install
From the live environment:
nixos-install --flake /mnt/etc/nixos#default
If Nix complains about flakes:
nix --extra-experimental-features 'nix-command flakes' run nixpkgs#nixos-install -- --flake /mnt/etc/nixos#default
6. Reboot
After install finishes:
reboot
First Boot
7. Log in as kris
The config creates the main user for you during install.
After boot, log into the installed system as:
kris
8. Verify the repo location
Make sure the config is really here:
ls /etc/nixos
You should see:
flake.nixflake.lockhostsmodules
9. Rebuild once from the installed system
Run:
sudo nixos-rebuild switch --flake /etc/nixos#default
Manual Restore After Install
Nix does not fully restore everything by itself. Some things still need to be copied back manually.
10. Recreate normal user folders
Run:
mkdir -p /home/kris/Pictures
mkdir -p /home/kris/Pictures/Screenshots
mkdir -p /home/kris/Pictures/Wallpapers
mkdir -p /home/kris/Pictures/Deltarune
mkdir -p /home/kris/Downloads
mkdir -p /home/kris/Desktop
mkdir -p /home/kris/Documents
mkdir -p /home/kris/Projects
11. Restore Quickshell project
This config expects the Deltarune Quickshell project here:
/home/kris/Projects/DeltaruneQuickshell
If it is missing, restore or clone it there.
12. Restore non-declarative assets
Copy back these if you want the setup to look correct:
~/Pictures/Wallpapers~/Pictures/Deltarune~/.local/share/fonts~/.local/share/icons~/.local/share/deltarunequickshell
Important:
- screenshots are optional
- the desktop can boot without all of this, but it will not look right
13. Restore private assets and secrets
If you use them, restore things like:
- SSH keys
- Git auth
- cloudflare credentials
- Bitwarden/KeePass databases
- any private art or shell assets
Useful Commands
Rebuild:
sudo nixos-rebuild switch --flake /etc/nixos#default
Update flake inputs:
cd /etc/nixos
nix flake update
Check current git state:
git -C /etc/nixos status
If Something Is Broken
Quickshell missing
Make sure:
- the package is installed by Nix
/home/kris/Projects/DeltaruneQuickshellexists
Rice looks wrong
You probably forgot to restore:
- fonts
- icons/cursors
- wallpapers
- Quickshell runtime state
Build fails because of hardware config
Make sure this file exists:
/etc/nixos/hardware-configuration.nix
Git push fails
Your local SSH config may be cursed. If needed, bypass system SSH config:
git -c core.sshCommand='ssh -F /dev/null' push
TL;DR
If you want the shortest version:
nix-shell -p git
rm -rf /etc/nixos
git clone git@tangled.sh:kris.darkworld.download/nix /etc/nixos
nix --extra-experimental-features 'nix-command flakes' run github:nix-community/disko -- --mode destroy,format,mount /etc/nixos#default
nixos-generate-config --root /mnt
cp /mnt/etc/nixos/hardware-configuration.nix /tmp/hardware-configuration.nix
rm -rf /mnt/etc/nixos
git clone git@tangled.sh:kris.darkworld.download/nix /mnt/etc/nixos
cp /tmp/hardware-configuration.nix /mnt/etc/nixos/hardware-configuration.nix
nixos-install --flake /mnt/etc/nixos#default
reboot
Then restore:
/home/kris/Projects/DeltaruneQuickshell~/.local/share/fonts~/.local/share/icons- your wallpapers and pictures