{
  description = "snowhawk: a nixos configuration flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
    lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; };
    neovim-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
    home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; };
    sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
    dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; };
    niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
    nix-gaming.url = "github:fufexan/nix-gaming";

    nh = { url = "github:viperML/nh"; inputs.nixpkgs.follows = "nixpkgs"; };

    nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; };

    repo-clone.url = "git+https://git.zynh.me/Zynh0722/repo-clone";
    zdwm = { url = "git+https://git.zynh.me/Zynh0722/dwm?ref=preanybar-systray"; flake = false; };
    zdwl = { url = "git+https://git.zynh.me/Zynh0722/dwl?ref=0.7"; inputs.nixpkgs.follows = "nixpkgs"; };
    fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; };
    backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; };
    umu = { url = "github:Open-Wine-Components/umu-launcher?dir=packaging/nix"; inputs.nixpkgs.follows = "nixpkgs"; };

    deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; };

    flake-parts.url = "github:hercules-ci/flake-parts";
  };

  outputs = inputs@{ flake-parts, deploy-rs, nixpkgs, self, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [ ./flakeModules/builders ];

      builders = {
        configurations.nixos = [
          { hostname = "snowhawk"; }
        ];

        configurations.darwin = [
          { hostname = "lynx"; }
        ];

        configurations.home = [
          { user = "zynh"; hostname = "msiserver"; }
          { user = "val"; hostname = "caveserver"; }
          { user = "ravenshade"; hostname = "permafrost"; }
        ];

        nixosModules = [
          inputs.home-manager.nixosModules.default
          inputs.chaotic.nixosModules.default
          inputs.niri.nixosModules.niri
        ];

        homeModules = [
          inputs.chaotic.homeManagerModules.default
        ];
      };

      flake =
        {
          deploy =
            let homeConfigPath = username: deploy-rs.lib.x86_64-linux.activate.home-manager self.homeConfigurations.${username};
            in {
              sshUser = "ravenshade";
              nodes.permafrost = {
                hostname = "permafrost";
                profiles.home.path = homeConfigPath "ravenshade@permafrost";
              };
            };

          overlays.default = import ./pkgs;
        };

      systems = [ ];
    };
}