# Hardware configuration for Steam Deck (nix-deck)
# Generated from nixos-generate-config on 2025-11-17

{ config, lib, pkgs, modulesPath, ... }:

{
  imports = [
    (modulesPath + "/installer/scan/not-detected.nix")
  ];

  # Steam Deck specific hardware configuration (Jovian)
  jovian.devices.steamdeck = {
    enable = true;
    autoUpdate = false;  # Set to true if you want automatic firmware updates
  };

  # Kernel modules detected by nixos-generate-config
  boot.initrd.availableKernelModules = [
    "nvme"
    "xhci_pci"
    "usb_storage"
    "uas"
    "usbhid"
    "sd_mod"
    "sdhci_pci"
  ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-amd" ];
  boot.extraModulePackages = [ ];

  # IMPORTANT: Update these filesystem configurations based on your actual partition layout
  # The configuration below is a placeholder - adjust according to how you partitioned the disk
  fileSystems."/" = {
    device = "/dev/disk/by-label/nixos";
    fsType = "ext4";
  };

  fileSystems."/boot" = {
    device = "/dev/disk/by-label/boot";
    fsType = "vfat";
  };

  swapDevices = [{
    device = "/swapfile";
    size = 8192;  # 8GB swap file
  }];

  # AMD CPU microcode updates
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
