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

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

  boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/mapper/crypted";
      fsType = "btrfs";
      options = [ "subvol=@root" ];
    };

  boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/84ad0e15-0056-4d46-801d-7735c2c6a5f6";

  fileSystems."/home" =
    { device = "/dev/mapper/crypted";
      fsType = "btrfs";
      options = [ "subvol=@home" ];
    };

  fileSystems."/nix" =
    { device = "/dev/mapper/crypted";
      fsType = "btrfs";
      neededForBoot = true;
      options = [ "subvol=@nix" "noatime" ];
    };

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

  swapDevices =
    [ { device = "/dev/disk/by-label/SWAP"; }
    ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp166s0.useDHCP = lib.mkDefault true;

  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;


  networking.hostName = "framework-13";

  system.stateVersion = "24.11"; # do not change
  home-manager.users.${config.user}.imports = [
    {
      home.stateVersion = "24.11";

      wayland.windowManager.hyprland = {
        settings = {
          bind = [
            "SUPER_SHIFT, Q, killactive,"
          ];
        };
        extraConfig = ''
          device {
            name = at-translated-set-2-keyboard
            kb_variant = dvorak,
            kb_layout = gb,gb
            kb_options = grp:alt_shift_toggle,caps:escape
          }
        '';
      };
    }
  ];


  stylix.fonts.sizes = {
    applications = 12;
    desktop = 10;
    terminal = 15;
  };

}


