{ description = "Wezterm configuration à la nixCats"; inputs = { nixpkgs.url = "github:nixos/nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; systems.url = "github:nix-systems/default"; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixToLua = { url = "github:BirdeeHub/nixToLua"; flake = false; }; }; outputs = inputs@{ flake-parts, ... }: let weznix = import ./modules/flake-module.nix; nixToLua = import inputs.nixToLua; in flake-parts.lib.mkFlake { inherit inputs; } { systems = import inputs.systems; imports = [ inputs.treefmt-nix.flakeModule weznix ]; flake = { overlays.default = _final: prev: { weznix = prev.callPackage ./pkgs/weznix { inherit nixToLua; }; }; flakeModules.default = weznix; }; perSystem = { pkgs, config, ... }: { treefmt = { programs.nixfmt = { enable = true; strict = true; }; }; devShells.default = pkgs.mkShellNoCC { inputsFrom = [ config.treefmt.build.devShell ]; nativeBuildInputs = with pkgs; [ nixd statix deadnix ]; }; weznix = { wrapConfig = true; luaPath = ./test; }; }; }; }