{ description = "Main nixos system configuration management by Jonas Hahn"; inputs = { nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; }; # Understand what everything does outputs = { self, nixpkgs, nixpkgs-unstable, sops-nix, home-manager, kmonad, ... }@inputs: let system = "x86_64-linux"; overlay-unstable = final: prev: { unstable = nixpkgs-unstable.legacyPackages.${prev.system}; }; helperModules = [ ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; }) home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.users.jonas = import ./user/home.nix; } ]; mkHost = name: path: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ path sops-nix.nixosModules.sops ] ++ helperModules; }; in { nixosConfigurations = { thinix = mkHost "thinix" ./hosts/thinix-thinkpad/configuration.nix; nixyos = mkHost "nixyos" ./hosts/nixyos-asus/configuration.nix; minoxy = mkHost "minoxy" ./hosts/minoxy-workstation/configuration.nix; }; }; }