···3535 # maximum compression, in exchange for build speed
3636 squashfsCompression = "zstd -Xcompression-level 19";
37373838- # ISO image should be an EFI-bootable volume
3939- makeEfiBootable = true;
4040-4141- # ISO image should be bootable from USB
4242- makeUsbBootable = true;
4343-4438 # remove "-installer" boot menu label
4539 appendToMenuLabel = "";
4640
-10
modules/iso/networking.nix
···33 inherit (lib) mkForce;
44in
55{
66- # use networkmanager in the live environment
77- networking.networkmanager = {
88- enable = true;
99- # we don't want any plugins, they only takeup space
1010- # you might consider adding some if you need a VPN for example
1111- plugins = [ ];
1212- };
1313-1414- networking.wireless.enable = mkForce false;
1515-166 # allow ssh into the system for headless installs
177 systemd.services.sshd.wantedBy = mkForce [ "multi-user.target" ];
188 users.users.root.openssh.authorizedKeys.keys = [
-3
modules/iso/nix.nix
···77 # we can disable channels since we can just use the flake
88 channel.enable = false;
991010- # we need to have nixpkgs in our path
1111- nixPath = [ "nixpkgs=${config.nix.registry.nixpkgs.to.path}" ];
1212-1310 settings = {
1411 # these are the bare minimum settings required to get my nixos config working
1512 experimental-features = [
···11-{
22- lib,
33- pkgs,
44- self',
55- ...
66-}:
11+{ pkgs, self', ... }:
72{
83 # disable all installer tools and only bring the ones that we explicitly need
94 # for installing or debugging
···2116 programs.git.package = pkgs.gitMinimal;
22172318 # needed packages for the installer
2424- environment.systemPackages = lib.attrValues {
2525- inherit (pkgs)
2626- vim # we are not installing neovim here so we have a light dev environment
2727- pciutils # going to need this for lspci
2828- ;
2929-3030- inherit (self'.packages) iztaller;
3131- };
3232-3333- # provide all hardware drivers, including proprietary ones
3434- hardware.enableRedistributableFirmware = true;
1919+ environment.systemPackages = [ self'.packages.iztaller ];
3520}
+12-38
modules/iso/space.nix
···11{ lib, ... }:
22let
33- inherit (lib) mkForce mkDefault;
33+ inherit (lib) mkForce;
44in
55{
66 # disable documentation
77 documentation = {
88- enable = mkDefault false;
99- doc.enable = mkDefault false;
1010- info.enable = mkDefault false;
1111- };
1212-1313- # we don't need this, plus it adds extra programs to the iso
1414- services = {
1515- logrotate.enable = false;
1616- udisks2.enable = false;
1717- };
1818-1919- # disable fontConfig
2020- fonts.fontconfig.enable = mkForce false;
2121-2222- # disable containers as it also pulls in pearl
2323- boot.enableContainers = false;
2424-2525- programs = {
2626- # disable less as it pulls in pearl
2727- less.lessopen = null;
2828-2929- # disable command-not-found and other similar programs
3030- command-not-found.enable = false;
3131- };
88+ enable = mkForce false;
99+ dev.enable = mkForce false;
1010+ doc.enable = mkForce false;
1111+ info.enable = mkForce false;
1212+ nixos.enable = mkForce false;
32133333- # Use environment options, minimal profile
3434- environment = {
3535- # we don't really need this warning on the minimal profile
3636- stub-ld.enable = mkForce false;
3737-3838- # no packages other, other then the ones I provide
3939- defaultPackages = [ ];
1414+ man = {
1515+ enable = false;
1616+ man-db.enable = false;
1717+ };
4018 };
41194242- xdg = {
4343- autostart.enable = false;
4444- icons.enable = false;
4545- mime.enable = false;
4646- sounds.enable = false;
4747- };
2020+ # don't include nixpkgs in our iso
2121+ system.installer.channel.enable = false;
4822}