{ description = "Nixos config flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:pjones/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, sops-nix, plasma-manager, ... } @ inputs: let system = "x86_64-linux"; overlay-unstable = final: prev: { unstable = nixpkgs-unstable.legacyPackages.${prev.system}; }; in { nixosConfigurations = { comfy-station = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ ({ config, pkgs, ... }: {nixpkgs.overlays = [overlay-unstable];}) ./hosts/comfy-station/configuration.nix home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager inputs.sops-nix.homeManagerModules.sops ]; home-manager.users.jonas = import ./home/jonas/home.nix; } ]; }; vm = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ ./hosts/vm/configuration.nix home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [plasma-manager.homeManagerModules.plasma-manager]; home-manager.users.jonas = import ./home/jonas/home.nix; } ]; }; }; }; }