Also switched from trying to override the `nixos` user to instead just installing home-manager _into_ the `nixos` user. It felt a bit like fighting the tide otherwise.
90 lines
1.6 KiB
Nix
90 lines
1.6 KiB
Nix
# 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;
|
|
desktop = {
|
|
enable = true;
|
|
kde = true;
|
|
x11 = true;
|
|
wayland = true;
|
|
sddm = true;
|
|
};
|
|
};
|
|
|
|
# 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;
|
|
};
|
|
};
|
|
|
|
# ISO customization
|
|
isoImage = {
|
|
volumeID = "NIXOS-LIVE";
|
|
};
|
|
|
|
# Enable some useful services
|
|
services.udisks2.enable = true; # For mounting USB drives
|
|
|
|
# Hardware support
|
|
hardware.enableAllFirmware = true;
|
|
hardware.enableRedistributableFirmware = true;
|
|
}
|