{ description = "tacocat's nix configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; helix = { url = "github:helix-editor/helix/master"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; # pass in the urls defined above # the @ syntax stores the arguments in the inputs variable outputs = inputs @ { self, nixpkgs, home-manager, helix, ... }: let system = "x86_64-linux"; pkgs = inputs.nixpkgs.legacyPackages.${system}; in { # nixosConfigurations: define options for different systems # desktop nixosConfigurations."BICEP" = nixpkgs.lib.nixosSystem { inherit system; modules = [ ./hosts/BICEP/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.users."tacocat" = ./users/tacocat/home.nix; } ]; }; # laptop nixosConfigurations."JWST" = nixpkgs.lib.nixosSystem { inherit system; specialArgs = {inherit inputs;}; modules = [ ./hosts/JWST/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.users."tacocat".modules = [ ./users/tacocat/home.nix ./users/tacocat/wayland ]; home-manager.extraSpecialArgs = {inherit inputs;}; } ]; }; #homeConfigurations: define options for different users homeConfigurations."tacocat" = inputs.home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = {inherit inputs;}; # Pass flake inputs to our config modules = [ ./users/tacocat/home.nix ./users/tacocat/wayland ]; }; packages.${system}."tacocat" = self.homeConfigurations."tacocat".activationPackage; }; }