# Live USB ISO configuration for recovery and installation { pkgs, modulesPath, ... }: { imports = [ # Use minimal installation CD as base (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ]; # Use roles structure for consistent configuration roles = { audio.enable = true; bluetooth.enable = true; users = { enable = true; extraGroups = [ "video" "wheel" "networkmanager" ]; }; }; # Allow unfree packages for broader hardware support nixpkgs.config.allowUnfree = true; # Essential packages for system recovery and installation environment.systemPackages = with pkgs; [ # Text editors neovim nano # System tools git curl wget htop tree lsof strace # Filesystem tools btrfs-progs e2fsprogs xfsprogs ntfs3g dosfstools # Network tools networkmanager wirelesstools # Hardware tools pciutils usbutils smartmontools # Archive tools unzip p7zip # Development tools (for quick fixes) gcc binutils ]; # Enable NetworkManager for easy wifi setup networking.networkmanager.enable = true; # Enable SSH daemon for remote access services.openssh = { enable = true; settings = { PermitRootLogin = "yes"; PasswordAuthentication = true; }; }; # Override default nixos user, set johno as the main user with password users.users.nixos.enable = false; users.users.johno = { isNormalUser = true; description = "John Ogle"; extraGroups = [ "wheel" "networkmanager" "audio" "video" ]; password = "nixos"; # Simple password for live environment }; users.users.root.password = "nixos"; # Enable flakes and new nix command in live environment nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Copy this flake to the live system for easy access system.extraDependencies = [ pkgs.git ]; # ISO customization isoImage = { compressImage = true; volumeID = "NIXOS-LIVE"; }; # Helpful aliases and environment environment.shellAliases = { ll = "ls -la"; la = "ls -la"; rebuild = "sudo nixos-rebuild switch --flake"; install-nixos = "sudo nixos-install --flake"; }; # Enable some useful services services.udisks2.enable = true; # For mounting USB drives programs.fish.enable = true; # Hardware support hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true; }