dotfiles

25 commits
Updated 2026-04-29 19:10:52
.
./flake.nix
{
  description = "Hennzau Flake Configuration";

  inputs = {
    nixpkgs.url = "nixpkgs/nixos-25.11";
    nixpkgs-unstable.url = "nixpkgs/nixos-unstable";

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs-unstable";
    };

    nur = {
      url = "github:nix-community/nur";
      inputs.nixpkgs.follows = "nixpkgs-unstable";
    };
  };

  outputs =
    {
      self,
      nixpkgs,
      nixpkgs-unstable,
      home-manager,
      ...
    }@inputs:
    let
      nlib = nixpkgs.lib;
      hlib = home-manager.lib;
      hosts = builtins.filter (x: x != null) (
        nlib.mapAttrsToList (name: value: if (value == "directory") then name else null) (
          builtins.readDir ./hosts
        )
      );
      pkgs-unstable = nixpkgs-unstable.legacyPackages."x86_64-linux";
    in
    {
      nixosConfigurations = builtins.listToAttrs (
        map (host: {
          name = host;
          value = nlib.nixosSystem {
            system = "x86_64-linux";
            modules = [
              { networking.hostName = host; }
              { users.users.enzolevan.shell = "${pkgs-unstable.nushell}/bin/nu"; }
              (./hosts + "/${host}")
            ];
            specialArgs = {
              inherit inputs;
            };
          };
        }) hosts
      );
      homeConfigurations = builtins.listToAttrs (
        map (host: {
          name = host;
          value = hlib.homeManagerConfiguration {
            pkgs = pkgs-unstable;
            modules = [ (./hosts + "/${host}/home.nix") ];
            extraSpecialArgs = {
              inherit inputs;
            };
          };
        }) hosts
      );
    };
}