{ description = "cy's flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: let lib = nixpkgs.lib; inherit (self) outputs; systems = [ "x86_64-linux" ]; forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); pkgsFor = lib.genAttrs systems ( system: import nixpkgs { inherit system; config = { allowUnfree = true; }; } ); in { packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; }); formatter = forEachSystem (pkgs: pkgs.nixfmt-rfc-style); devShells = forEachSystem (pkgs: import ./shells { inherit pkgs; }); nixosModules = import ./modules/nixos; homeManagerModules = import ./modules/home-manager; overlays = import ./overlays { inherit inputs outputs; }; nixosConfigurations = let pkgs = pkgsFor.x86_64-linux; in { ytnix = lib.nixosSystem { specialArgs = { inherit inputs outputs; }; modules = [ { nixpkgs = { inherit pkgs; }; } ./hosts/ytnix inputs.sops-nix.nixosModules.sops ]; }; chunk = lib.nixosSystem { specialArgs = { inherit inputs outputs; }; modules = [ { nixpkgs = { inherit pkgs; }; } ./hosts/chunk inputs.sops-nix.nixosModules.sops ]; }; }; homeConfigurations = { "yt@ytnix" = home-manager.lib.homeManagerConfiguration { pkgs = pkgsFor.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./home/yt/ytnix.nix ]; }; "yt@chunk" = home-manager.lib.homeManagerConfiguration { pkgs = pkgsFor.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./home/yt/chunk.nix ]; }; }; }; }