# ============================================================================ # Desktop Configuration # ============================================================================ # Hardware and boot configuration for standard desktop workstations. # Includes Intel CPU support and NVMe storage. { config, lib, modulesPath, ... }: with lib; let cfg = config.athenix.hw.nix-zima; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; options.athenix.hw.nix-zima = mkOption { type = types.submodule { options = { enable = mkOption { type = types.bool; default = false; description = "Enable Zima-specific hardware configuration."; }; }; }; default = { }; description = "Zima hardware type configuration."; }; config = mkIf cfg.enable { # ========== Boot Configuration ========== boot.initrd.availableKernelModules = [ "xhci_pci" # USB 3.0 support "usb_storage" # USB storage devices "sd_mod" # SD card support "sdhci_pci" # SD card host controller ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support boot.extraModulePackages = [ ]; boot.kernelParams = [ "quiet" # Minimal boot messages "splash" # Show Plymouth boot splash "boot.shell_on_fail" # Emergency shell on boot failure "udev.log_priority=3" # Reduce udev logging "rd.systemd.show_status=auto" # Show systemd status during boot ]; # ========== Filesystem Configuration ========== athenix.host.filesystem.useSwap = lib.mkDefault false; athenix.host.filesystem.device = lib.mkDefault "/dev/mmcblk0"; athenix.host.buildMethods = lib.mkDefault [ "installer-iso" ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; # ========== Hardware Configuration ========== hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; # ========== Software Profile ========== athenix.sw.enable = lib.mkDefault true; athenix.sw.desktop.enable = lib.mkDefault true; }; }