{ ... } @ inputs:

let
  hardware = inputs.hardware.nixosModules;
  yagpt_tg_bot = inputs.yagpt_tg_bot.nixosModules;
in
{
  home = {
    system = "x86_64-linux";

    extraModules = [
      hardware.common-gpu-amd
      yagpt_tg_bot.default
      ../modules/nix.nix
      ../modules/wireguard-client.nix
      ../modules/octoprint.nix
      ../../home/users/jan
      # ../../home/users/nas
    ];

    extraHomeModule = { lib, pkgs, ... }: {
      local.polybar.wifiDevice = "wlp3s0";
      # local.alacritty.fontSize = 8.0;
      local.wezterm.fontSize = 10.0;

    };

    specialArgs = {
      extraJanHomeModule = { lib, pkgs, ... }: {
        imports = [ ./home/xmonad_projects.secret.nix ];

        home.packages = lib.mkAfter (with pkgs.unstable; [
          # 3d programs
          blender
          cura
          godot_4
          # electronics
          kicad-small
        ]);

      };
    };
  };

  asus-gl553vd = {
    system = "x86_64-linux";

    extraModules = [
      hardware.common-cpu-intel
      ../modules/nix.nix
      ../modules/wireguard-client.nix
      ../../home/users/jan
      # ../../home/users/nas
    ];

    extraHomeModule = { ... }: {
      local.polybar.wifiDevice = "wlp2s0";
      # local.alacritty.fontSize = 6.0;
      local.wezterm.fontSize = 10.0;
    };

    specialArgs = {
      extraJanHomeModule = { lib, ... }: {
        imports = [ ./asus-gl553vd/xmonad_projects.secret.nix ];
      };
    };
  };

  istal = {
    system = "x86_64-linux";

    targetHost = (import ./istal/data.secret.nix).addr;
  };

  tatos = {
    system = "x86_64-linux";

    targetHost = (import ./tatos/data.secret.nix).addr;
  };
}
