{ description = "This flake contains packages and modules for home-manager and nixos - maintained by the tgc-users"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgsUnstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs: ( let lib = import ./lib { inherit (inputs.nixpkgs) lib; inherit inputs; }; modulesTemplate = modules: modules // { default = { imports = builtins.attrValues modules; }; }; in { inherit lib; formatter = lib.forAllSystems { body = pkgs: pkgs.nixfmt-rfc-style; }; packages = lib.forAllSystems { overlays = builtins.attrValues inputs.self.overlays; body = pkgs: (import ./packages pkgs) // { inherit (pkgs) swaylock-plugin-fprintd; }; }; overlays = (import ./overlays) // { nixpkgsUnstable = final: prev: { unstable = inputs.nixpkgsUnstable.legacyPackages.${prev.stdenv.hostPlatform.system}; }; lib = final: prev: { lib = prev.lib.extend (_: _: { tgc = lib; }); }; packages = final: prev: { tgc = import ./packages prev; }; emacs-overlay = inputs.emacs-overlay.overlays.package; default = inputs.self.overlays.packages; }; homeManagerModules = modulesTemplate (import ./homeManagerModules inputs.self); nixosModules = (modulesTemplate (import ./nixosModules inputs.self)) // { packages = { nixpkgs.overlays = with inputs.self.overlays; [ libheif packages ]; }; }; } ); }