{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixCats.url = "github:BirdeeHub/nixCats-nvim"; }; outputs = { self, nixpkgs, nixCats, ... }@inputs: let inherit (nixCats) utils; luaPath = ./.; forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all; extra_pkg_config = { }; dependencyOverlays = [ (utils.standardPluginOverlay inputs) ]; categoryDefinitions = { pkgs, ... }: { lspsAndRuntimeDeps = { general = [ ]; }; startupPlugins = { general = [ ]; }; optionalPlugins = { general = with pkgs.vimPlugins; [ nvim-lspconfig ]; }; sharedLibraries = { general = [ ]; }; environmentVariables = { }; }; packageDefinitions = { nvim = { ... }: { settings = { suffix-path = true; suffix-LD = true; wrapRc = true; aliases = [ "vim" ]; }; categories = { general = true; }; }; }; defaultPackageName = "nvim"; in forEachSystem ( system: let nixCatsBuilder = utils.baseBuilder luaPath { inherit nixpkgs system dependencyOverlays extra_pkg_config ; } categoryDefinitions packageDefinitions; defaultPackage = nixCatsBuilder defaultPackageName; pkgs = import nixpkgs { inherit system; }; in { packages = utils.mkAllWithDefault defaultPackage; devShells = { default = pkgs.mkShell { name = defaultPackageName; packages = [ defaultPackage ]; inputsFrom = [ ]; shellHook = ''''; }; }; } ) // ( let nixosModule = utils.mkNixosModules { moduleNamespace = [ defaultPackageName ]; inherit defaultPackageName dependencyOverlays luaPath categoryDefinitions packageDefinitions extra_pkg_config nixpkgs ; }; homeModule = utils.mkHomeModules { moduleNamespace = [ defaultPackageName ]; inherit defaultPackageName dependencyOverlays luaPath categoryDefinitions packageDefinitions extra_pkg_config nixpkgs ; }; in { overlays = utils.makeOverlays luaPath { inherit nixpkgs dependencyOverlays extra_pkg_config; } categoryDefinitions packageDefinitions defaultPackageName; nixosModules.default = nixosModule; homeModules.default = homeModule; inherit utils nixosModule homeModule; inherit (utils) templates; } ); }