[live-usb] Add live-usb machine configuration

This commit is contained in:
2025-07-29 12:01:38 -07:00
parent cc3d398963
commit a512d9bc06
2 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
# 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;
}