{ description = "MY NixOS configuration BITCH not yours fuck YOU honestly"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/master"; # The `follows` keyword in inputs is used for inheritance. # Here, `inputs.nixpkgs` of home-manager is kept consistent with # the `inputs.nixpkgs` of the current flake, # to avoid problems caused by different versions of nixpkgs. inputs.nixpkgs.follows = "nixpkgs"; }; impermanence.url = "github:nix-community/impermanence"; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; llm-agents.url = "github:Qumulo/llm-agents"; # nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; }; outputs = { self, nixpkgs, home-manager, impermanence, # nix-flatpak, }@inputs: let inherit (self) outputs; nix.registry.nixos.flake = inputs.self; environment.etc."nix/inputs/nixpkgs".source = nixpkgs.outPath; nix.nixPath = [ "nixpkgs=${nixpkgs.outPath}" ]; in { nixosConfigurations = { homepc = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; system = "x86_64-linux"; modules = [ ./machines/homepc/configuration.nix home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = { inherit inputs outputs; }; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.laythe = import ./machines/homepc/home.nix; home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ]; } ]; }; workstation = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; system = "x86_64-linux"; modules = [ ./machines/workstation/configuration.nix impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = { inherit inputs outputs; }; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.laythe = import ./machines/workstation/home.nix; home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ]; } ]; }; }; }; }