{ description = "JawZ NixOS flake setup"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs-master.url = "github:nixos/nixpkgs?ref=master"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-master, home-manager, ... }@inputs: let inherit (self) outputs; lib = nixpkgs.lib // home-manager.lib; system = "x86_64-linux"; makePkgs = repo: import repo { inherit system; config.allowUnfree = true; }; pkgs = makePkgs nixpkgs; pkgsU = makePkgs nixpkgs-unstable; pkgsM = makePkgs nixpkgs-master; in { inherit lib pkgs; formatter = pkgs.alejandra; nixosConfigurations = { workstation = lib.nixosSystem { inherit system; modules = [ ./hosts/workstation/configuration.nix ({ pkgs, ... }: { nixpkgs.overlays = [ (import ./overlay.nix { inherit pkgs pkgsU pkgsM; }) ]; }) ]; specialArgs = { inherit inputs outputs; }; }; miniserver = lib.nixosSystem { inherit system; modules = [ ./hosts/miniserver/configuration.nix ({ pkgs, ... }: { nixpkgs.overlays = [ (import ./overlay.nix { inherit pkgs pkgsU pkgsM; }) ]; }) ]; specialArgs = { inherit inputs outputs; }; }; }; }; }