{ description = "sefidel's nix flake dotfiles"; inputs = { unstable.url = "github:nixos/nixpkgs/nixos-unstable"; unstable-small.url = "github:nixos/nixpkgs/nixos-unstable-small"; nixpkgs-master.url = "github:nixos/nixpkgs/master"; nixpkgs-2311.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs-crystal.url = "github:sefidel/nixpkgs/crystal_1_11"; nixpkgs-cloudflared.url = "github:sefidel/nixpkgs/cloudflared-2024.1.5"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "unstable"; colmena.url = "github:zhaofengli/colmena"; colmena.inputs.nixpkgs.follows = "unstable"; nur.url = "github:nix-community/NUR"; impermanence.url = "github:nix-community/impermanence"; sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "unstable"; flake-compat.url = "github:edolstra/flake-compat"; flake-compat.flake = false; hydra.url = "github:NixOS/hydra"; neovim-nightly.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly.inputs.nixpkgs.follows = "unstable"; helix.url = "github:helix-editor/helix"; helix.inputs.nixpkgs.follows = "unstable"; helix.inputs.rust-overlay.follows = "rust"; rust.url = "github:oxalica/rust-overlay"; rust.inputs.nixpkgs.follows = "unstable"; nix-gaming.url = "github:fufexan/nix-gaming"; nix-gaming.inputs.nixpkgs.follows = "unstable"; }; outputs = { self, unstable, ... } @ inputs: let lib = unstable.lib.extend (self: super: { my = import ./lib { inherit inputs; lib = self; }; }); in { nixosConfigurations = import ./nixos inputs; homeConfigurations = import ./home inputs; colmena = self.lib.mkColmenaFromNixOSConfigurations self.nixosConfigurations; lib = lib.my; hydraJobs = lib.mapAttrs' (name: pname: { name = pname; value = self.nixosConfigurations.${name}.config.system.build.toplevel; }) (lib.genAttrs (builtins.attrNames self.nixosConfigurations) (name: "nixos-${name}")); # // lib.mapAttrs' (name: pname: { # name = pname; # value = self.homeConfigurations.${name}.activationPackage; # }) (lib.genAttrs (builtins.attrNames self.homeConfigurations) (name: "home-${name}")); }; }