{
  config,
  lib,
  pkgs,
  modulesPath,
  user,
  ...
}: {
  imports = [
    ../../nixos/desktop.nix
    ../../nixos/nvidia.nix
    ../../nixos/sway.nix
    ../../nixos/hp.nix
    ../../nixos/steam.nix
    (modulesPath + "/installer/scan/not-detected.nix")
  ];

  nixpkgs.config = {
    allowUnfree = true;
    chromium.enableWideVine = true;
  };

  boot = {
    kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
    supportedFilesystems = ["btrfs" "zfs"];
    loader.systemd-boot.enable = true;
    loader.efi.canTouchEfiVariables = true;
    initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "uas"];
    initrd.luks.devices."enc".device = "/dev/disk/by-label/LUKS";
    extraModulePackages = with config.boot.kernelPackages; [acpi_call];
    kernelModules = ["kvm-intel" "i2c-dev" "acpi_call"];
  };

  programs.msmtp = let
    mail = "alert@nrab.lol";
  in {
    enable = true;
    setSendmail = true;
    defaults = {
      aliases = pkgs.writeText "mail-aliases" ''
        ${user}: nikodem@rabulinski.com
        root: ${mail}
      '';
      tls = "on";
      auth = "login";
      tls_starttls = "off";
    };
    accounts = {
      default = {
        host = "mail.nrab.lol";
        passwordeval = "cat ${../../assets/alertplaintext}";
        user = mail;
        from = mail;
      };
    };
  };

  # TODO: ZFS ONLY IN SERVER SPECIALIZATION
  boot.zfs.extraPools = ["yottapool"];
  services.zfs = {
    autoScrub.enable = true;
    zed.settings = {
      ZED_DEBUG_LOG = "/tmp/zed.debug.log";
      ZED_EMAIL_ADDR = [user];
      ZED_EMAIL_PROG = "${pkgs.msmtp}/bin/msmtp";
      ZED_EMAIL_OPTS = "@ADDRESS@";

      ZED_NOTIFY_INTERVAL_SECS = 3600;
      ZED_NOTIFY_VERBOSE = true;

      ZED_USE_ENCLOSURE_LEDS = true;
      ZED_SCRUB_AFTER_RESILVER = true;
    };
  };

  hardware = {
    enableAllFirmware = true;
    cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
    opentabletdriver.enable = true;
  };

  networking.hostName = "legion";
  networking.hostId = builtins.substring 0 8 (builtins.readFile ./machine-id);
  environment.etc.machine-id.source = ./machine-id;
  networking.networkmanager.enable = true;
  networking.firewall.enable = false;
  networking.useDHCP = lib.mkDefault true;

  time.timeZone = "Europe/Warsaw";

  i18n.defaultLocale = "en_US.UTF-8";
  console = {
    font = "Lat2-Terminus16";
    keyMap = "pl";
  };

  virtualisation.podman = {
    enable = true;
    dockerCompat = true;
  };

  virtualisation.libvirtd = {
    enable = true;
    onBoot = "ignore";
  };

  services.xserver.libinput = {
    enable = true;
    mouse.accelProfile = "flat";
  };

  users.users.${user}.extraGroups = ["libvirtd" "i2c" "networkmanager"];
  services.udisks2.enable = true;
  services.usbmuxd.enable = true;
  environment.systemPackages = with pkgs; [libimobiledevice ifuse podman-compose];

  system.stateVersion = "22.05";

  powerManagement.cpuFreqGovernor = "performance";

  # TODO: Which of those actually does what I need?
  services.logind = {
    lidSwitch = "ignore";
    lidSwitchDocked = "ignore";
    lidSwitchExternalPower = "ignore";
    extraConfig = "HandleLidSwitch=ignore";
  };

  # TODO: Manage those sanely
  fileSystems."/" = {
    device = "/dev/disk/by-label/LINUX";
    fsType = "btrfs";
    options = ["subvol=root" "compress=zstd" "noatime"];
  };

  fileSystems."/home" = {
    device = "/dev/disk/by-label/LINUX";
    fsType = "btrfs";
    options = ["subvol=home" "compress=zstd" "noatime"];
  };

  fileSystems."/nix" = {
    device = "/dev/disk/by-label/LINUX";
    fsType = "btrfs";
    options = ["subvol=nix" "compress=zstd" "noatime"];
  };

  fileSystems."/persist" = {
    device = "/dev/disk/by-label/LINUX";
    fsType = "btrfs";
    options = ["subvol=persist" "compress=zstd" "noatime"];
  };

  fileSystems."/var/log" = {
    device = "/dev/disk/by-label/LINUX";
    fsType = "btrfs";
    options = ["subvol=log" "compress=zstd" "noatime"];
    neededForBoot = true;
  };

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

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