{ pkgs
, lib
, config
, modulesPath
, ... }: {
  global = {
    id = "d40d05288c1544af94e534eab24768fc";
    fs.esp.uuid = "6CEB-765A";
    fs.type = "xfs";
    fs.store = "b80e8bbe-d1ff-4d2e-ae25-9e9048d67355";
    gpu.enable = true;
    gpu.type = "nvidia";
  };

  home = {
    gyroflow.enable = true;
    jetbrains.enable = true;
    vscode.enable = true;
    libreoffice.enable = true;
    minecraft.enable = true;
    steam.enable = true;
  };

  imports = lib.pipe ./. [
    builtins.readDir
    (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix"))
    (lib.mapAttrsToList (n: _: ./${n}))
  ] ++ [ (modulesPath + "/profiles/qemu-guest.nix") ];

  # work around low cage resolution on pure nvidia
  services.greetd.settings.default_session.command = let
    cfg = config.programs.regreet;
  in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" ''
    ${lib.getExe pkgs.wlr-randr} --output DP-2 --mode 1920x1080@60.000000Hz
    ${lib.getExe cfg.package}
  ''}";

  boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "usbhid" "sr_mod" "virtio_blk" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-amd" ];
  boot.extraModulePackages = [ ];
}
