{ config, pkgs, ... }:
{
  imports =
    [
      ./hardware-configuration.nix
      #../../modules/gpu-amd.nix

      ../../modules/home-manager.nix
      ../../modules/nur-and-unstable.nix
      ../../modules/unfree.nix
      ../../modules/base.nix
      ../../modules/base-bios-grub.nix
      ../../modules/power-management.nix
      ../../modules/ntfs.nix
      #../../modules/ssh-fde-unlock.nix
      ../../modules/nitrokey-gpg-smartcard.nix
      ../../modules/ssh-client.nix
      ../../modules/ssh-server.nix

      ../../modules/btrfs-scrub.nix
      ../../modules/btrfs-mount-options.nix

      #../../modules/headless.nix
      #
      #../../modules/kde.nix
      #../../modules/programs-kde.nix
      #
      ../../modules/gnome-base.nix
      ../../modules/fwupd-gnome.nix
      ../../modules/programs-gnome.nix

      ../../modules/programs-base.nix
      #../../modules/programs.nix
      ../../modules/flatpak.nix
      ../../modules/signal-desktop.nix
      ../../modules/firefox.nix

      #../../modules/games.nix
      #../../modules/dosbox-x.nix
      ../../modules/steam.nix

      ../../modules/jetbrains-ide.nix
    ];

  #foo = throw "NixOS rebuild boot required to update to 24.05";

  networking.hostName = "yodaGaming";
  boot.initrd.luks.devices."luks-root".allowDiscards = true;
  yoda.btrfsFileSystems = ["/"];
  #yoda.btrfsMounts = yoda.btrfsFileSystems;

  # BIOS
  boot.loader.grub.devices = ["/dev/disk/by-id/ata-Samsung_SSD_840_EVO_250GB_S1DBNSAF715594P"];

  # Disable `i915` (onboard Intel GPU).
  #   https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/intel/disable.nix
  #   https://discourse.nixos.org/t/fully-disabling-the-nvidia-dgpu-on-an-optimus-laptop/29686/6
  # Disable `radeon` so that `amdgpu` is used instead.
  #   https://nixos.wiki/wiki/AMD_GPU#Enable_Southern_Islands_.28SI.29_and_Sea_Islands_.28CIK.29_support
  boot.blacklistedKernelModules = [ "i915" ];
  boot.kernelParams = [ "i915.modeset=0" "radeon.si_support=0" "amdgpu.si_support=1" ];

  # List all available kernel versions:
  #   `nix repl` -> `:l <nixpkgs>` -> `pkgs.linuxPackages` and press `TAB`
  # Default.
  #boot.kernelPackages = pkgs.linuxPackages;
  # Latest.
  boot.kernelPackages = pkgs.linuxPackages_latest;
  # Hardened.
  # https://archlinux.org/packages/extra/x86_64/linux-hardened/
  # -> https://github.com/anthraxx/linux-hardened
  #boot.kernelPackages = pkgs.linuxPackages_hardened;
  # Free/Libre.
  # https://en.wikipedia.org/wiki/Linux-libre
  #boot.kernelPackages = pkgs.linuxPackages-libre;

  # Most users should never change this value after the initial install, for any reason, even if you've upgraded your system to a new NixOS release.
  system.stateVersion = "23.11";
}