{ config, inputs, lib, outputs, pkgs, ... }: {
  boot = {
    initrd.kernelModules = [ "zfs" ];
    kernelPackages = pkgs.master.linuxPackages_7_0;
    loader = {
      efi.canTouchEfiVariables = true;
      systemd-boot = {
        enable = true;
        memtest86.enable = true;
      };
      timeout = 3;
    };
    supportedFilesystems = [ "zfs" ];
    zfs = {
      devNodes = "/dev/disk/by-label";
      forceImportRoot = false;
      package = pkgs.master.zfs_2_4;
    };
  };

  environment.systemPackages = [
    pkgs.git-review
  ];

  imports = [
    ./disks.nix
    ./hardware-configuration.nix
    ../common/core
    #../common/optional/db.nix
    ../common/optional/dev.nix
    ../common/optional/gui.nix
    ../common/optional/misc.nix
    #../common/optional/multimedia.nix
    ../common/optional/pipewire.nix
    ../common/optional/services/openssh.nix
    ../common/optional/services/xorg.nix
    ../common/optional/zfs.nix
    ../common/users/nipsy
    ../common/users/root
  ];

  networking = {
    hostId = "4b1f6e29";
    hostName = "kaitain";
    nftables.enable = true;
  };

  nixpkgs = {
    config.allowUnfree = true;
    hostPlatform = "x86_64-linux";
    overlays = [
      outputs.overlays.additions
      outputs.overlays.modifications
      outputs.overlays.master-packages
      outputs.overlays.stable-packages
    ];
  };

  services = {
    openssh.openFirewall = false;
    xrdp = {
      defaultWindowManager = "${pkgs.i3}/bin/i3";
      enable = true;
      extraConfDirCommands = ''
        substituteInPlace $out/xrdp.ini \
          --replace-fail 'port=3389' 'port=vsock://-1:3389' \
          --replace-fail '#vmconnect=true' 'vmconnect=true' \
          --replace-fail 'security_layer=negotiate' 'security_layer=rdp' \
          --replace-fail 'crypt_level=high' 'crypt_level=none' \
          --replace-fail 'bitmap_compression=true' 'bitmap_compression=false'
      '';
      #openFirewall = true;
    };
    #xserver.videoDrivers = lib.mkForce [ "modesetting" ];
  };

  sops = {
    age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
    defaultSopsFile = ../secrets/kaitain.yaml;

    secrets = {
      "nix-access-token-github" = {};
      "ssh_config".path = "/root/.ssh/config";
    };
  };

  system.stateVersion = "23.11";

  systemd.services.xrdp.serviceConfig.ExecStart = lib.mkForce "${pkgs.xrdp}/bin/xrdp --nodaemon --config /etc/xrdp/xrdp.ini"; # https://github.com/nixos/nixpkgs/issues/304855 required because XRDP ignores port parameter in INI when specified via CLI

  #systemd.user.services = let
  #  vbox-client = desc: flags: {
  #    description = "VirtualBox Guest: ${desc}";

  #    wantedBy = [ "graphical-session.target" ];
  #    requires = [ "dev-vboxguest.device" ];
  #    after = [ "dev-vboxguest.device" ];

  #    unitConfig.ConditionVirtualization = "oracle";

  #    serviceConfig.ExecStart = "${config.boot.kernelPackages.virtualboxGuestAdditions}/bin/VBoxClient -fv ${flags}";
  #    };
  #in {
  #  virtualbox-resize = vbox-client "Resize" "--vmsvga";
  #  virtualbox-clipboard = vbox-client "Clipboard" "--clipboard";
  #};

  users.users.root.openssh.authorizedKeys.keys = [
    (builtins.readFile ../common/users/nipsy/keys/id_att.pub)
  ];

  virtualisation.hypervGuest.enable = true;
}
