No description
| home-manager | ||
| nixos | ||
| systems/af-desktop | ||
| users/ashley_funkhouser | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
AJFunk Nix Flake
Structure
flake.nix- Entrypoint to repositoryusers/ashley_funkhouser/home.nix- Base home configuration specific to userconfiguration.nix- Base system configuration specific to user
systems/af-desktop/home.nix- Home configuration specific to machineconfiguration.nix- System configurationdisko.nix- Declarative disk partitioning
nixos/...- configuration.nix fragments for importing into system configurationstui-base.nix- Custom system configuration across all systemsgui-base.nix- Custom system configuration specific to systems with a GUI
home-manager/- home.nix fragments for importing into home configurationstui-base.nix- Custom home configuration across all systemsgui-base.nix- Custom home configuration specific to systems with a GUI
flake.lock- Dependency lockfile
Getting started
Start in flake.nix towards the bottom in the nixosConfiguration section and follow the modules and imports down until you find what you are looking for.
System Installation (af-desktop)
ZFS Clean Install (Disko)
- Ensure all existing data is backed up.
- Boot into NixOS Live CD on system
- Exit installer and open a terminal
- Clone this repo to the live environment
cd
git clone https://git.mlaga97.space/ajfunk/ajfunk-nix
- Generate hardware-configuration.nix, add and commit
cd ~/ajfunk-nix
nixos-generate-config --no-filesystems --show-hardware-config | tee ./systems/af-desktop/hardware-configuration.nix
git add ./systems/af-desktop/hardware-configuration.nix
git commit -m 'Add hardware-configuration.nix for af-desktop'
git push
- Determine target disk path using
gnome-disks - Perform installation with Disko (See here for additional information)
cd ~/ajfunk-nix
sudo nix \
--extra-experimental-features nix-command \
--extra-experimental-features flakes \
run 'github:nix-community/disko/latest#disko-install' -- --flake .#af-desktop --disk primary ${TARGET_DISK_PATH}
- Once installation is completed and hardware-configuration.nix is committed and pushed, reboot the system
- After rebooting, re-clone this repository with the updated hardware-configuration.nix, this is the system configuration to modify for any changes you want to make to the system.
Dual Boot (Manual)
TODO
Updates
Change System Configuration
cd ~/ajfunk-nix
# NOTE: Need to at least stage changes to guarantee that they will be applied by the rebuild, committing not required
git add *
sudo nixos-rebuild switch --flake .#$HOSTNAME
Update Packages
cd ~/ajfunk-nix
nix flake update
git add *
sudo nixos-rebuild switch --flake .#$HOSTNAME