{
  lib,
  nixos-hardware,
  disko,
  inputs,
  ...
}: let
  hostname = "Equinox";
in {
  # System version
  system.stateVersion = "23.11";

  imports = [
    # Import hardware configuration
    inputs.nixos-hardware.nixosModules.dell-xps-15-9510
    inputs.nixos-hardware.nixosModules.dell-xps-15-9510-nvidia
    inputs.disko.nixosModules.disko
    ./disko.nix

    # Import system configuration
    ../../modules/system.nix
    ../../modules/containers.nix
    ../../modules/virtualization.nix
    ../../modules/harden.nix
    ../../modules/kde.nix
  ];

  hardware.nvidia.open = false;

  # Set networking
  hardware.enableRedistributableFirmware = true;
  networking.hostName = hostname;
  networking.networkmanager.enable = true;
  networking.useDHCP = lib.mkDefault true;

  # Bootloader configuration
  boot = {
    kernelModules = ["kvm-intel"];
    extraModulePackages = [];

    initrd = {
      kernelModules = [];
      availableKernelModules = [
        "xhci_pci"
        "thunderbolt"
        "vmd"
        "nvme"
        "usb_storage"
        "sd_mod"
        "rtsx_pci_sdmmc"
      ];
    };

    loader = {
      systemd-boot = {
        enable = true;
        configurationLimit = 5;
      };
      efi = {
        canTouchEfiVariables = true;
      };
    };
  };

  # Setup Audio
  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    wireplumber.extraConfig."10-disable-camera" = {
      "wireplumber.profiles" = {
        main = {
          "monitor.libcamera" = "disabled";
        };
      };
    };
  };

  # Setup bluetooth
  hardware.bluetooth.enable = true;

  # Add OpenGl support
  hardware.graphics = {
    enable = true;
    enable32Bit = true;
  };

  # cuda support
  nixpkgs.config.cudaSupport = true;
  hardware.nvidia-container-toolkit.enable = true;
}
