{ config, lib, options, pkgs, inputs, modulesPath, ... }: with lib; let calamares-desk-os = lowPrio ( (pkgs.calamares.override {nixos-extensions = true;}) .overrideAttrs { patches = [ ../../packages/calamares/0001-Modifies-the-users-module-to-only-set-passwords-of-u.patch ../../packages/calamares/0002-Makes-calamares-search-run-current-system-sw-share-c.patch ../../packages/calamares/0003-Uses-pkexec-within-modules-in-order-to-run-calamares.patch ../../packages/calamares/0004-Adds-unfree-qml-to-packagechooserq.patch ../../packages/calamares/0005-Modifies-finished-module-to-add-some-NixOS-resources.patch ../../packages/calamares/0006-Remove-options-for-unsupported-partition-types.patch ../../packages/calamares/0007-Fix-setting-the-kayboard-layout-on-GNOME-wayland.patch ../../packages/calamares/0008-Change-default-location-where-calamares-searches-for.patch ]; } ); calamares-extensions-desk-os = pkgs.callPackage ../../packages/calamares-extensions {}; calamares-nixos-autostart = pkgs.makeAutostartItem { name = "io.calamares.calamares"; package = calamares-desk-os; }; in { imports = [ ./iso-image.nix (modulesPath + "/profiles/all-hardware.nix") (modulesPath + "/profiles/base.nix") (modulesPath + "/profiles/installation-device.nix") ]; system.nixos.distroName = "deskOS 1"; # FIXME(m): Disable squashfs compression during development # isoImage.squashfsCompression = null; boot = { consoleLogLevel = 0; kernelParams = ["quiet" "splash" "loglevel=3" "systemd.show_status=false" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3"]; initrd.verbose = false; loader.systemd-boot.enable = true; loader.timeout = lib.mkForce 0; plymouth.enable = true; # NOTE(m): Enable kernel modules that improve wifi support on # Macbooks during installation. # See https://nixos.org/manual/nixos/stable/#sec-building-image-drivers # FIXME(m): See if this can be cleaned up and go somewhere else and # ensure this doesn't break non-Apple hardware. initrd.kernelModules = ["wl"]; kernelModules = ["kvm-intel" "wl"]; extraModulePackages = [config.boot.kernelPackages.broadcom_sta]; }; # ISO naming. isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; # An installation media cannot tolerate a host config defined file # system layout on a fresh machine, before it has been formatted. swapDevices = mkImageMediaOverride []; fileSystems = mkImageMediaOverride config.lib.isoFileSystems; boot.postBootCommands = '' for o in $(