This NixOS setup is based off of https://github.com/hgl/nixverse and using its features for handling multiple machines, splitting configurations depending on users/nodes/more.

Machines

+ lappy - Samsung Galaxy Book 5 Pro 360 - Intel Core Ultra 7 256V, Intel Arc Graphics, 16GB RAM, 4TB SSD
  Currently being sold, no longer in use.
+ nixy - AMD 7800X3D, GeForce RTX 4070 Super, 64GB RAM, 1TB SSD, 4TB SSD on /home. 
  This machine is still on a previous NixOS setup and has not been moved over to this one yet, working on finishing off everything on lappy first.
* nixwork - Framework Laptop 16, AMD Ryzen 9 7940HS, 96GB RAM, 4TB SSD.
  This machine has not been received yet.
+ arcade - Minisforum Neptune HX99G, AMD Ryzen 9 6900HX, AMD Radeon 6650M, 64GB RAM, 1TB SSD 
  This is used in my arcade machine and is still running Windows at the moment but will eventually be converted to NixOS as well.
+ ally - ASUS ROG Ally X, AMD Ryzen Z1 Extreme, 24GB RAM, 4TB SSD 
  This is my handheld gaming device and is still running Windows at the moment but will eventually be converted to NixOS as well.

To-Do List

 [ ]  Finish porting features from nixy's previous setup and get them working on lappy: impermanence.
 [ ]  Set up declarative Discord setup with nixcord and plugins.
 [ ]  Figure out how to set up sops-nix with user passwords properly.
 [X]  Fully setup private git repository for secrets.
 [X]  Integrate private git repository into nixverse setup.
 [X]  Switch nixy over to this nixverse setup.
 [ ]  Finish checking the apps I need on the arcade machine work under NixOS (attractmode, retroarch, teknoparrot, others).
 [ ]  Setup arcade machine on NixOS.
 [ ]  Setup ally machine on NixOS.

Installation

- Run latest NixOS installer from USB stick.
- git clone https://git.zerojay.com/jay/nixverse.git && cd nixverse
- git submodule update --init --recursive
- cd nodes/hosts/[systemname]
- sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount ./disk-config.nix
- mount | grep /mnt
- sudo btrfs subvolume snapshot -r /mnt /mnt/root-blank
- sudo btrfs subvolume list /mnt
- sudo btrfs property get -ts /mnt/root-blank
- cd ~/nixverse
- sudo nixos-install --root /mnt --flake .#[systemname]
- sudo mkdir -p /mnt/persist/etc
- sudo mkdir -p /mnt/persist/var/lib
- sudo mkdir -p /mnt/persist/var/log
- sudo mkdir -p /mnt/persist/home
- sudo mkdir -p /mnt/persist/root
- sudo cp -a /mnt/etc/. /mnt/persist/etc/
- sudo cp -a /mnt/var/lib/. /mnt/persist/var/lib
- sudo cp -a /mnt/var/log/. /mnt/persist/var/log
- sudo cp -a /mnt/home/. /mnt/persist/home/
- sudo cp -a /mnt/root/. /mnt/persist/root/
- reboot

Post-Install - Secrets Setup

- mkdir -p ~/.config/sops/age
- age-keygen -o ~/.config/sops/age/keys.txt
- nixverse secrets edit

Maintenance - Clean Up BTRFS old_roots

- sudo mkdir /mnt
- sudo mount /dev/mapper/cryptroot -o subvolid=5 /mnt
- cd /mnt/old_roots
- sudo du -h -d 1
- sudo rm -rf [snapshot here]
- sudo umount /mnt
