{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; wrappers.url = "github:Lassulus/wrappers"; wrappers.inputs.nixpkgs.follows = "nixpkgs"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: let lib = inputs.nixpkgs.lib; eachSupportedSystem = lib.genAttrs lib.systems.flakeExposed; treefmtEval = eachSupportedSystem ( system: inputs.treefmt-nix.lib.evalModule inputs.nixpkgs.legacyPackages.${system} ( { pkgs, ... }: { projectRootFile = "flake.nix"; programs.nixfmt.enable = true; } ) ); in { nixosModules = { vim = modules/vim.nix; zsh = modules/zsh.nix; git = modules/git.nix; udiskie = modules/udiskie.nix; niri = modules/niri; tools = modules/tool.nix; }; overlays.default = final: prev: { vim-kmein = prev.callPackage packages/vim { }; vimv = prev.callPackage packages/vimv.nix { }; ashell-kmein = import packages/ashell.nix { inherit (inputs) wrappers; pkgs = prev; }; git-kmein = import packages/git.nix { inherit (inputs) wrappers; pkgs = prev; }; niri-kmein = import packages/niri { inherit (inputs) wrappers; pkgs = final; lib = inputs.nixpkgs.lib; }; }; packages = eachSupportedSystem ( system: let pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.self.overlays.default ]; }; in { inherit (pkgs) ashell-kmein git-kmein niri-kmein vim-kmein vimv ; } ); formatter = eachSupportedSystem (system: treefmtEval.${system}.config.build.wrapper); checks = eachSupportedSystem (system: { formatting = treefmtEval.${system}.config.build.check inputs.self; }); }; }