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

let
  inherit (lib)
    mkDefault
    mkForce
    ;
in
{

  imports = [
    ./common/cpu/amd
    ./common/cpu/amd/pstate.nix
    ./common/gpu/amd
    ./common/pc/laptop
    ./common/pc/ssd
    ./common/gpu/nvidia/prime.nix
    ./common/gpu/nvidia/ada-lovelace
  ];

  config = {
    # # Configure basic system settings:
    boot = {
      # Note: it seems being on the latest kernel is important for CPPC to work, which is required for the amd_pstate
      # https://bugzilla.kernel.org/show_bug.cgi?id=218686
      kernelPackages = pkgs.linuxPackages_xanmod;
      kernelModules = [ "kvm-amd" ];
      kernelParams = [
        "mem_sleep_default=deep"
        "pcie_aspm.policy=powersupersave"
      ];
    };

    services = {
      asusd = {
        enable = mkDefault true;
        enableUserService = mkDefault true;
      };

      supergfxd.enable = mkDefault true;
    };

    # # Enable the Nvidia card, as well as Prime and Offload: NVIDIA GeForce RTX 4060 Mobile
    boot.blacklistedKernelModules = [ "nouveau" ];

    services.xserver.videoDrivers = mkForce [
      "amdgpu"
      "nvidia"
    ];

    hardware = {
      amdgpu.initrd.enable = mkDefault true;

      nvidia = {
        modesetting.enable = true;
        nvidiaSettings = mkDefault true;

        prime = {
          offload = {
            enable = mkDefault true;
            enableOffloadCmd = mkDefault true;
          };
          amdgpuBusId = "PCI:65:0:0";
          nvidiaBusId = "PCI:1:0:0";
        };

        powerManagement = {
          enable = lib.mkForce true;
          finegrained = lib.mkForce true;
        };
      };
    };
    # Meditek doesn't seem to be quite sensitive enough on the default roaming settings:
    #   https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
    #   https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
    #
    # But NixOS doesn't have the tweaks for IWD, yet.
    # networking.wireless.iwd.settings =
    #   lib.mkIf (config.networking.wireless.iwd.enable && config.networking.wireless.scanOnLowSignal)
    #     {
    #       General = {
    #         RoamThreshold = -75;
    #         RoamThreshold5G = -80;
    #         RoamRetryInterval = 20;
    #       };
    #     };
  };
}
